机器 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_rsa
,id_dsa
,id_ecdsa
或id_ed25519
。如果要以其他名称保存,则需要在命令行上指定文件名:
ssh -i ~/.ssh/myvps root@vps_ip2
或者在您的~/.ssh/config
文件中:
Host vps_ip2
IdentityFile ~/.ssh/myvps
User root