如何编写bash脚本以在集群上生成ssh密钥?

时间:2014-05-19 19:07:52

标签: bash ssh ssh-keys sshd

我有一组centos服务器,我想重新生成ssh主机密钥。其中有很多,所以我不想这样做:

   ssh root@servername "ssh-keygen -q -f /etc/ssh/ssh_host_key -N '' -t rsa" 

对于每个服务器,因为它需要很长时间,我必须将y键入右键,然后将新主机键添加到我的已知主机文件中。如果有帮助,我有一个IP列表。我以为我可以在他们身上做一个for循环。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

如果你有一个ips列表,那么在服务器列表上重新生成ssh主机密钥应该很容易。我将遍历它们并删除现有的主机密钥,然后重新启动ssh服务器,它将自动重新生成它们。确保你做&&在rm和sshd之间重新启动,否则你可能会被锁定。

#!/bin/bash

for server in 1.2.3.4 1.2.3.5 1.2.3.6 1.2.3.7
do
    echo updating $server 
    ssh-keygen -R $server
    ssh root@$server -o StrictHostKeyChecking=no "rm -rf /etc/ssh/ssh_host_* && /etc/init.d/sshd restart"
    echo `ssh-keyscan -t rsa $server` >> ~/.ssh/known_hosts
done