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


8

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

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

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

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

我们的IT专家建议我们可以在known_hosts中创建2个条目,其中一个使用server1的密钥,另一个使用server2的密钥,两者均使用主机myservice.mycompany.uk。

那可能行得通吗?在Windows上如何使用腻子/ psftp来完成此操作?由于主机密钥存储在注册表中,因此不允许重复的名称。有没有更好的方法,例如我们可以强制服务器使用相同的主机密钥吗?

Answers:


15

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

另一种选择是停用客户端上的主机密钥检查。可以通过调整它们ssh_config的使用来完成:

Host myservice.mycompany.uk
    StrictHostKeyChecking

关闭主机密钥检查会破坏使用SSH传输这些文件的意义,复制主机密钥可能是最好的解决方案。
詹姆斯·耶鲁

1
关闭主机密钥检查并不意味着通信未正确加密,这是SSH的重点。就是说,正如我所说,我本人赞成第一个解决方案。
ℝaphink

在解决方案的客户端版本(具有不同的服务器密钥)中,您还需要添加 UserKnownHostsFile=/dev/null其他内容,第一个密钥将进入已知主机,第二个将导致“中间人”警告。
尼尔斯

@Nils这不是必需的;设置StrictHostKeyChecking yes将忽略UserKnownHosts文件,而使用系统已知的hosts文件。因此,修改UserKnownHosts的任何事情都是毫无意义的。
Michael Lowman

好的-我必须进一步澄清这一点:我说的是您有两个不同的服务器密钥的情况。您必须在那里指定StrictHostKeyChecking no并另外将其设置UserKnownHostsFile为/ dev / null。在这种情况下,所有主机密钥都将被接受(当然,使此安全级别无用)。
尼尔斯

0

我以这种方式存档,用户root在23:00 PM运行一个脚本,该脚本连接到Linux群集的逻辑IP地址,因此在IP地址故障转移的情况下,我的ssh指纹会更改

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

这样,该设置仅适用于root用户

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.