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