SSH使用VIP的主机密钥validation问题

VIP上有两台生产服务器,一次只能使用一台,例如:

myservice.mycompany.uk通常指向server1,如果server1发生故障,它将更改为指向server2。

还有一些服务器需要通过SFTP将文件发送到myservice.mycompany.uk,如果我们故障转移到server2,它们应该是完全透明的。

问题是,虽然在服务器1和服务器2上安装了密钥,但由于服务器2的主机密钥与服务器1的主机密钥不同,因此其他服务器将具有主机密钥validation问题。 这会导致安全错误(因为严格检查),并且必须从known_hosts中移除一行以使其正常工作。

我们的IT人员build议我们可以在known_hosts中创build2个条目,其中一个使用server1的密钥,另一个使用server2,两者都使用myservice.mycompany.uk主机。

这是否有可能工作? 这怎么能在windows上用putty / psftp来完成呢? 由于主机密钥存储在registry中,因此不允许使用重复名称。 有没有更好的方法,例如,我们可以强制服务器具有相同的主机密钥?

为了使客户端更容易,我只是在两台机器上使用相同的主机密钥。 只需将其中一个密钥(当前正在使用的一台服务器)复制到第二台机器上即可。 它们的键在/etc/ssh/ssh_host_*

另一个选项是取消激活客户端上的主机密钥检查。 这可以通过调整他们的ssh_config来使用:

 Host myservice.mycompany.uk StrictHostKeyChecking 

我以这种方式归档,用户root在23:00 PM运行一个脚本,连接到linux集群的逻辑IP地址,所以如果IP地址故障切换,我的ssh指纹变化

 echo "StrictHostKeyChecking no" >> /root/.ssh/config echo "UserKnownHostsFile /dev/null" >> /root/.ssh/config 

这样,该设置仅适用于根