检测到可能的 DNS 欺骗。远程主机标识已更改

Posted

技术标签:

【中文标题】检测到可能的 DNS 欺骗。远程主机标识已更改【英文标题】:Possible DNS spoofing detected. Remote host identification has changed 【发布时间】:2018-11-10 17:38:12 【问题描述】:

我最近更换了服务器,因此我有了一个新的 IP 地址。当我尝试使用git fetch [remote repository] 时,我得到了这个:

C:\Users[路径]\app>git fetch [远程仓库] @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @ 警告:检测到可能的 DNS 欺骗! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ RSA 例如.net 的主机密钥已更改,并且 对应的IP地址【新服务器的IP地址】未知。这 可能意味着 DNS SPOOFING 正在发生或 IP 地址 主机及其主机密钥同时更改。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @ 警告:远程主机标识已更改! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ 它是 可能有人在做一些讨厌的事情!有人可能是 现在正在窃听你(中间人攻击)!也是 可能是刚刚更改了主机密钥。指纹为 远程主机发送的 RSA 密钥是 SHA256:ep0A2t+sVMSaIEbS8wt8ptfmdHSr1kNocWsBNab0tsI。请联系 您的系统管理员。添加正确的主机密钥 /c/Users/[username]/.ssh/known_hosts 删除此消息。 /c/Users/[username]/.ssh/known_hosts:1 RSA 主机中的违规 RSA 密钥 例如.net 的键已更改,您已要求严格 检查。主机密钥验证失败。致命:无法读取 远程存储库。请确保您拥有正确的访问权限 并且存储库存在。 C:\Users[路径]\app>

我只需要从新服务器获取一个新的 SSH 密钥并将其放入我的本地计算机即可解决此问题,对吗?谢谢。

【问题讨论】:

【参考方案1】:

如果您实际上有一台新服务器,并且您使用与旧服务器相同的名称或相同的 IP 来引用它,那么 ssh 证书很可能不一样,您会收到一条欺骗警告消息它。在消息中,您可以看到 ssh 指向旧证书信息所在的行:/c/Users/[username]/.ssh/known_hosts:1。长话短说:如果您更改了服务器,那么预计 ssh 证书会不一样。只需从旧服务器的 ssh known_hosts 中删除该行(在本例中为文件的第一行),就可以了。

【讨论】:

【参考方案2】:

警告信息在这里给出了更好的解释。 example.net 的 RSA 主机密钥已更改,对应 IP 地址 [新服务器的 IP 地址] 的密钥未知。

让我们比较一下更改 example.net (10.0.0.0) 的 IP 之前和更改 example.net (10.0.0.1) 的 IP 之后的两个场景。

更改前:example.net - 10.0.0.0

10.0.0.2>> ssh user@example.net 服务器 10.0.0.0 的主机指纹存储在服务器 10.0.0.2 的已知主机文件中。

更改后:example.net - 10.0.0.1

10.0.0.2>> ssh user@example.net 现在 example.net 指向 10.0.0.1,但在已知的主机文件中 example.net 仍然具有 10.0.0.0 的主机指纹。因此,每当您尝试 ssh 到 example.net 时都会收到警告,因为主机密钥已更改,因为它是新服务器。根据 ssh,它认为其他人已经访问了您的 DNS,并可能将 DNS 的端点更改为任何错误的服务器,这就是您面临 DNS 欺骗警告的原因。

要承认它,你需要告诉 ssh 你是故意改变它的人。为此,只需从服务器 10.0.0.2 的 known_host 文件中删除旧的主机密钥条目并删除 10.0.0.0 的条目。

找到服务器的指纹:

ssh-keygen -F example.net

删除服务器的指纹:

ssh-keygen -R example.net

【讨论】:

以上是关于检测到可能的 DNS 欺骗。远程主机标识已更改的主要内容,如果未能解决你的问题,请参考以下文章

警告:远程主机标识已更改 (1)

引发 ssh 远程主机标识的所有原因都已更改

markdown SSH远程主机标识已更改

如何摆脱“远程主机标识已更改”消息

Ubuntu-ssh - - 警告:远程主机标识已更改 [关闭]

ssh 连接,known_hosts 为空,但我收到警告“远程主机标识已更改”并询问密码