我想这可能是一个基本的Linux问题,但是我在为我正在管理的机器群设置一个单一的SSH密钥时遇到了一些麻烦。
在对此问题进行研究时,我见过的大多数教程都允许您从最初生成密钥的计算机SSH到您放置相同密钥的其他计算机。但我希望能够从我的农场中的任何机器SSH到任何其他机器。
有一种简单的方法吗?还是我坚持在所有机器之间创建密钥对?我们正在进行一些脚本编写工作,我们在所有机器之间进行SSH访问至关重要。
答案 0 :(得分:4)
这不仅是可能的,而且非常普遍!
只需使用id_rsa.pub
生成的密钥的ssh-keygen
部分,然后将其安装到远程计算机上的~/.ssh/authorized_keys
即可。
当您从工作站SSH到远程系统时,SSH将使用本地私钥id_rsa
登录,这将验证远程系统的~/.ssh/authorized_keys
档案。
-
您更新了问题,提到您要从任何计算机连接到任何其他计算机。这不被认为是良好的安全措施。相反,你应该有一个包含私钥的“管理员”机器。但是,如果必须这样做,请将~/.ssh/id_rsa
私钥复制到所有计算机上。
答案 1 :(得分:0)
我猜您可以将相同的私钥(id_rsa
)复制到您的所有计算机,并将相同的相应公钥(id_rsa.pub
)添加到所有计算机的authorized_keys
。
然后您可能希望在所有计算机上运行ssh-agent
并使用ssh-add
但是从安全的角度来看,我会对此感到有些不安。
答案 2 :(得分:0)
甚至还有一个命令为您执行此操作,这确保了之后文件权限正确:
ssh-copy-id user@machine
答案 3 :(得分:0)
使用ssh-agent
。您可以使用ssh-add
将私钥添加到其中。
现在使用ssh -A
登录其他主机。这会将您的代理转发给其他主机,并允许您从第一个主机登录到下一个主机。
鉴于您已将公钥(例如ssh-copy-id
)复制到所有主机,因此您可以从任何主机登录到任何其他主机。