使用 VIP 的 SSH 主机密钥验证问题

使用 VIP 的 SSH 主机密钥验证问题

我们在 VIP 上有 2 台生产服务器,每次只能使用一台,例如:

myservice.mycompany.uk 通常指向 server1,如果 server1 发生故障,则会指向 server2。

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

问题是,虽然密钥已安装在 server1 和 server2 上,但其他服务器将存在主机密钥验证问题,因为 server2 的主机密钥与 server1 的主机密钥不同。这会导致安全错误(因为启用了严格检查),必须从 known_hosts 中删除一行才能使其正常工作。

我们的 IT 人员建议我们可以在 known_hosts 中创建 2 个条目,一个包含 server1 的密钥,另一个包含 server2 的密钥,两者的主机均为 myservice.mycompany.uk。

这可能行得通吗?如何在 Windows 上使用 putty/psftp 实现这一点?由于主机密钥存储在注册表中,不允许重复的名称。有没有更好的方法,例如,我们可以强制服务器具有相同的主机密钥吗?

答案1

为了方便客户,我会在两台机器上使用相同的主机密钥。只需将其中一个密钥(当前正在使用的服务器的密钥)复制到第二台机器即可。这些密钥位于 中/etc/ssh/ssh_host_*

另一个选项是停用客户端上的主机密钥检查。这可以通过调整它们ssh_config来实现:

Host myservice.mycompany.uk
    StrictHostKeyChecking

答案2

我以这种方式存档,用户 root 在晚上 23:00 运行一个脚本,连接到 Linux 集群的逻辑 IP 地址,因此如果发生 IP 地址故障转移,我的 ssh 指纹就会改变

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

这样设置就只针对root了

相关内容