复制服务器的 SSH 主机密钥是否会引起任何问题

复制服务器的 SSH 主机密钥是否会引起任何问题

我正在尝试启动具有负载平衡设置的 gitlab 环境...我遇到的问题是,如果用户使用 putty 或 git bash 通过 ssh 连接到 LB,他们会出现以下错误。

服务器的主机密钥与 PuTTY 在注册表中缓存的密钥不匹配

我尝试添加以下配置但没有帮助,Putty 网站明确表示,如果没有人工干预,Putty 绝不会让您绕过。

   StrictHostKeyChecking no
    UserKnownHostsFile /dev/null    

阅读了大量论坛后,唯一的选择就是使所有服务器上的 ssh 密钥相同。

这会引起其他问题吗?

我看到的问题是,如果一台机器受到攻击并且攻击者可以进入其他服务器,由于这是在内部网中,这会是一个问题吗?

答案1

“阅读了大量论坛内容后,唯一的选择就是使所有服务器上的 ssh 密钥相同。”

我认为还有另一种选择:您可以使用 ssh 证书。

SSH 实际上具有使用证书颁发机构对服务器和客户端进行身份验证的功能。这双向有效。使用此系统,您可以向客户端验证主机,避免出现无法验证主机真实性的令人困惑的消息。您还可以向主机验证客户端,从而允许您在一个地方注册新的 SSH 密钥并允许整个组织进行访问。

https://www.digitalocean.com/community/tutorials/how-to-create-an-ssh-ca-to-validate-hosts-and-clients-with-ubuntu

答案2

共享主机密钥应该不是问题。

SSH 通常使用 Diffie-Hellman 密钥交换(您甚至可以通过KexAlgorithms在 sshd_config 中设置来强制执行),这意味着即使攻击者拥有私有主机密钥,他也无法被动地解密与使用相同主机密钥的其他服务器的连接。在这种情况下,主机密钥实际上仅用于服务器的真实性检查。

此外,即使拥有您其中一台服务器的攻击者能够入侵您的其他服务器(他可能已经入侵了,方法与入侵第一台服务器相同),他能得到什么好处呢?作为负载平衡器,这些服务器可能都具有相同的权限和对内联网的访问权限,因此对于攻击者来说,控制其中一台服务器就足够了,我认为控制所有服务器并没有什么好处。

相关内容