在一组用户和服务器中共享authorized_keys,known_hosts和SSH密钥

我们有5个生产服务器,每个服务器有2个用户,我们用于某些应用程序。

server01server05user1user2

我们希望能够从任何服务器上的任何用户到任何其他服务器上的任何用户进行SSH连接。

例如server01上的user1server01上的user2等等。

是否有可能创build一个SSH密钥,并在所有服务器上的所有用户之间共享?

是否有一个全球目录用于存储每台服务器上的authorized_keysknown_hosts和SSH密钥,并在服务器上的两个用户之间共享?

寻找最简单的方法来实现这一点。

像puppet这样的configurationpipe理工具可以帮助解决这个问题。 但是,如果您不想学习任何新工具,那么如果您只有五台服务器和两个用户,则不需要太多时间就可以手动完成工作。

如果您不关心审计或安全性,可以在所有最终用户和所有服务器用户帐户之间共享相同的SSH密钥。 你可以使用一个简单的shell脚本来自动化这个。

 for server in server1.com server2.com server3.com; do ssh $server sh << "END" for user in user1 user2; do echo 'ssh public key goes here' | tee ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys echo 'ssh private key goes here' >> ~/.ssh/id_rsa done END done 

然而,“正确的”,安全的,更自动的方法是为每个用户分配不同的用户帐户,然后使用sudo根据用户最终用户的需求,为特定命令授予对其他帐户的访问权限。