我有一个 centos 服务器集群,我想重新生成 ssh 主机密钥。它们有很多,所以我不想这样做:
ssh root@servername "ssh-keygen -q -f /etc/ssh/ssh_host_key -N '' -t rsa"
对于每台服务器,因为这需要很长时间,我必须在右边输入 y ,然后将新的主机密钥添加到我已知的主机文件中。如果有帮助,我有一个 IP 列表。我在想我可以对它们做一个 for 循环。
有什么建议么?
如果您有 ips 列表,那么在服务器列表上重新生成 ssh 主机密钥应该很容易。我将遍历它们并删除现有的主机密钥,然后重新启动 ssh 服务器,它会自动重新生成它们。确保在 rm 和 sshd restart 之间执行 && ,否则可能会被锁定。
#!/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