我有一组centos服务器,我想重新生成ssh主机密钥。其中有很多,所以我不想这样做:
ssh root@servername "ssh-keygen -q -f /etc/ssh/ssh_host_key -N '' -t rsa"
对于每个服务器,因为它需要很长时间,我必须将y键入右键,然后将新主机键添加到我的已知主机文件中。如果有帮助,我有一个IP列表。我以为我可以在他们身上做一个for循环。
有什么建议吗?
答案 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