什么会导致 ssh 指纹更改?

信息安全 中间人 SSH
2021-09-06 05:35:29

更改 ssh 指纹的可能原因是什么?

一些背景:在政府系统中发现一个敏感漏洞并将其披露给他们之后,发生了一些我不记得以前发生过的事情。当连接到我用来验证漏洞的 VPS 时,我的 ssh 客户端抱怨密钥;指纹与保存的指纹不匹配。我确认保存的那个仍然存在,并且在立即重新启动 VPS 后它再次匹配。

恶意干扰的可能性有多大?

2个回答

在这种情况下,正确的假设是您正在连接到不同的服务器。

  • 也许是中间人攻击或
  • 也许您的 DNS 被欺骗或
  • 也许您的数据中心刚刚移除了您的机器一秒钟,因为他们接到了政府的电话,而您不小心尝试连接到他们的“服务器无法访问”的包罗万象的机器,或者
  • 也许您的服务器在突然的负载和上述保持或...

您可能连接到错误的机器有很多原因,您绝对不应该继续。

还有一些无害的原因,即误报有时会让人们无论如何都会联系起来。

我现在能想到的误报:

  • 服务器已删除它不想再支持的旧密码套件。
  • 服务器 IP 已更改,并且您的配置中有“CheckHostIP 是”(许多系统上的默认设置)。
  • 由于默认密码套件已更改,因此您已使用不同的主机名连接到同一台服务器(想想 gitlab 之类的东西)。(这真的很晦涩,但我遇到了。)
  • 该服务器安装了多个 SSH 服务器,并且您正在连接到运行不同 SSH 服务器的同一台机器(例如,由于配置不正确的启动行为),该服务器有自己的单独密钥。

请注意,如此处所述,公钥身份验证可防止中间人攻击。它当然不会阻止您简单地登录错误的机器,然后输入您的 sudo 密码。所以还是需要谨慎。

这绝对可能是由于路径上的攻击者发起中间人攻击并试图冒充您的 VPS 的 SSH 服务器造成的。他们没有主机密钥,所以他们只会出示自己的,这会触发警告。触发此错误的另一个常见原因是您通过 SSH 连接到的服务器的 IP 地址已更改。known_hosts 文件本质上是对 IP、SSH 主机密钥指纹、主机名进行编码。如果主机名的 IP 或 SSH 密钥指纹更改,您将收到警告。