如何为多个远程服务器设置无密码 ssh 登录?

如何为多个远程服务器设置无密码 ssh 登录?

机器 A 是我的本地电脑。
机器 B 是我的远程 vps 电脑,其 ip 是 vps_ip1。
机器 C 是另一台远程 vps 电脑,其 ip 是 vps_ip2。
要设置 ssh 自动登录(无需密码),如下所示。

步骤 1:在机器 A 上创建身份验证 SSH-Kegen 密钥

ssh-keygen -t rsa  -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):    #it is a comment ,input nothing just enter
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Step2 将生成的公钥上传到机器B

scp  /root/.ssh/id_rsa.pub root@vps_ip1:/root/.ssh/authorized_keys

Step3 在机器B上设置权限

ssh root@vps_ip1 "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"

现在我可以使用 ssh 命令登录到机器 B。

ssh  root@vps_ip1

与机器 C 的步骤几乎相同。

步骤 1:在机器 A 上创建身份验证 SSH-Kegen 密钥

ssh-keygen -t rsa  -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):/root/.ssh/myvps
Your identification has been saved in /root/.ssh/myvps.
Your public key has been saved in /root/.ssh/myvps.pub.

步骤2 将生成的公钥上传到机器C

scp  /root/.ssh/myvps.pub root@vps_ip2:/root/.ssh/authorized_keys

步骤3 在机器C上设置权限

ssh root@vps_ip2 "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"

现在我无法使用 ssh 命令登录机器 C。

ssh  root@vps_ip2

它们之间的唯一区别在于步骤1,输入要保存密钥的文件,这有关系吗?
为什么我的公钥不能保存为 /root/.ssh/myvps.pub?
就我而言,机器 A 必须 ssh 两个远程服务器,所以我必须将其他远程服务器指定为不同的名称。
如何修复?

答案1

为什么我的公钥不能保存为 /root/.ssh/myvps.pub?

您的密钥可以以任何您想要的名称保存。但是,ssh客户端只能自动地搜索一些标准名称,id_rsaid_dsaid_ecdsaid_ed25519。如果要以其他名称保存,则需要在命令行上指定文件名:

ssh -i ~/.ssh/myvps root@vps_ip2

或者在您的~/.ssh/config文件中:

Host vps_ip2
    IdentityFile ~/.ssh/myvps
    User root

相关内容