networking上所有机器的无密码ssh

我知道在两台服务器之间允许基于密钥的身份validation的基本方法是使用以下三个步骤:

ssh-keygen ssh-copy-id -i remote_host ssh remote_host 

使用这种方法时,我需要手动input密码,当我SSH入远程主机,然后做相反的,以允许SSH两种方式。

我遇到的问题是我需要在Azure的同一个networking上的100台服务器才能够无密码双向ssh到对方,并能够再次希望做到这一点。

有没有办法让我为同一networking上的所有机器轻松完成此操作,而无需为每一台机器设置?

pipe理数以百计的服务器,你可能会使用某种configurationpipe理工具,比如木偶,厨师等等。

你仍然需要设置一次,但是你可以做更多的事情,而不仅仅是ssh,所以这可能是值得的,例如当你想更新ssh密钥时,puppet master中的一个变化(或者其他CM )就足够了。 为了安全起见,build议您偶尔更换一次钥匙。

你可以使用Bash:

 #!/bin/bash for ip in `cat /root/serverips.txt`; do ssh-copy-id -i ~/.ssh/id_rsa.pub $ip done