要通过SSH密钥认证在165服务器直接访问103服务器,你需要完成以下步骤来配置SSH密钥:
1. 在165服务器上生成SSH密钥对
如果165服务器上还没有SSH密钥对,可以使用以下命令生成:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa:指定密钥类型为RSA。-b 4096:指定密钥长度为4096位(更安全)。-C "your_email@example.com":添加注释(可选,通常用邮箱标识)。
按提示操作:
- 按
Enter接受默认的密钥保存路径(通常是~/.ssh/id_rsa)。 - 设置一个密码(可选,如果不想设置密码,直接按
Enter)。
生成后,密钥对会保存在 ~/.ssh/ 目录下:
- 私钥:
~/.ssh/id_rsa - 公钥:
~/.ssh/id_rsa.pub
2. 将公钥复制到103服务器
将165服务器生成的公钥(id_rsa.pub)复制到103服务器的 ~/.ssh/authorized_keys 文件中。
方法 1:使用 ssh-copy-id 命令(推荐)
如果165服务器上安装了 ssh-copy-id,可以直接运行以下命令:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@103.server.ip
-i ~/.ssh/id_rsa.pub:指定公钥文件。user@103.server.ip:103服务器的用户名和IP地址。
运行后,输入103服务器的用户密码,公钥会自动添加到103服务器的 ~/.ssh/authorized_keys 文件中。
方法 2:手动复制公钥
如果没有 ssh-copy-id,可以手动完成:
-
在165服务器上查看公钥内容:
cat ~/.ssh/id_rsa.pub复制输出的内容。
-
登录到103服务器:
ssh user@103.server.ip -
在103服务器上,将公钥添加到
~/.ssh/authorized_keys文件中:mkdir -p ~/.ssh # 如果 .ssh 目录不存在,先创建 chmod 700 ~/.ssh # 设置权限 echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys # 设置权限
3. 测试SSH密钥认证
在165服务器上尝试通过SSH登录103服务器:
ssh user@103.server.ip
如果配置正确,你应该可以直接登录,而无需输入密码。
4. 使用SSH密钥认证执行命令
现在你可以直接在165服务器上使用SSH密钥认证访问103服务器,例如:
ssh user@103.server.ip "mkdir -p /data/html/abc/dist"
或者使用 scp 复制文件:
scp -r /path/to/8330_dist/* user@103.server.ip:/data/html/abc/dist/
5. 注意事项
-
文件权限:
- 确保103服务器上的
~/.ssh目录权限为700。 - 确保
~/.ssh/authorized_keys文件权限为600。
- 确保103服务器上的
-
SSH配置文件: 如果需要简化登录,可以在165服务器的
~/.ssh/config文件中添加以下内容:Host 103 HostName 103.server.ip User user IdentityFile ~/.ssh/id_rsa之后可以直接使用
ssh 103登录。 -
安全性:
- 不要泄露私钥(
id_rsa)。 - 如果需要更高的安全性,可以为私钥设置密码。
- 不要泄露私钥(
完成以上步骤后,你就可以通过SSH密钥认证从165服务器直接访问103服务器了!