如何修复警告:远程主机标识已更改! 错误

已发表: 2021-01-21

无论您是通过终端连接 SFTP 客户端还是 SSH,出现的常见错误是“警告:远程主机标识已更改!” 这会阻止您连接到您的网站或服务器。 这种情况时不时发生在我身上,这很烦人,因为我通常急于解决某些问题。 这个错误让我停下来。

下面我将引导您通过一些快速简便的方法来解决错误并重新连接。

什么是“警告:远程主机标识已更改!” 错误?

当您的 SSH 密钥或服务器的连接信息发生更改时,通常会发生以下错误。 例如,如果您最近将网站迁移到新的托管服务提供商,那么您的 IP 地址会有所不同。

Mac 上的连接信息(IP 地址和凭据)存储在known_hosts文件中。 在 Windows 上,它存储在注册表中。 当您使用 SFTP 客户端(我最喜欢的是 ForkLift)或 SSH 客户端(PuTTY)时,它会使用这些信息连接到 Web 服务器。

 [user@hostname ~]$ ssh root@user @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is xx:xx:xx. Please contact your system administrator. Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message. Offending RSA key in /var/lib/sss/pubconf/known_hosts:3 RSA host key for xxx.xxx.xx.xxx has changed and you have requested strict checking. Host key verification failed.
  • 如何在 Mac 上修复 known_hosts 文件
  • 如何在 Windows 上修复您的 known_hosts 文件

如何在 Mac 上修复 known_hosts 文件

有几种方法可以在 Mac 上修复known_hosts文件。 我更喜欢使用应用程序,因为它既快速又简单。 我永远不必记住终端命令。 但我会引导你完成这两种方法。

选项 1:使用应用程序修复 known_hosts 文件(最简单的方法)

一个名为 SSH Config Editor 的很棒的应用程序可以让您管理您的 SSH 客户端配置文件和其他设置。 有一个专业版,我总是建议尽可能支持开发人员。 如果您的预算紧张,免费版本足以管理您的known_hosts文件。 请按照以下步骤操作。

第1步

安装免费的 SSH 配置编辑器应用程序。

第2步

打开 SSH 配置编辑器,然后单击“文件 → 打开已知主机”。

打开 known_hosts 文件
打开 known_hosts 文件

第 3 步

查找并突出显示有问题的条目。 如果您不确定选择哪一个,您应该查找您的旧 IP 地址和当前 IP 地址。 如果您使用 Kinsta 等提供商进行托管,这称为您的“站点 IP 地址”,可以在您的 MyKinsta 仪表板中找到。

然后单击垃圾桶图标以删除该条目。 另一种选择是删除所有条目。

删除 known_hosts 条目
删除 known_hosts 条目

第4步

在以下提示中单击“删除”:

您想从已知主机中删除“[xx.xxx.xx.xxx]:xxxxxx”吗?

第 5 步

关闭窗口并在出现以下提示时单击“保存”:

是否要保存对文档“已知主机”所做的更改?

您现在应该能够再次连接到您的网站和/或服务器。

您可能不需要经常使用 SSH 配置编辑器应用程序,因此我不建议将其固定到您的扩展坞上。 当您遇到连接错误时,只需安装它即可。

选项 2:从终端修复 known_hosts 文件

第二个选项是使用终端清理known_hosts文件中的条目。 请按照以下步骤操作。

第1步

打开终端应用程序。 最快的方法是启动 Spotlight 并搜索“终端”。 或者您可以在“实用程序 → 终端”下找到它。

Mac 终端
Mac 终端

第2步

粘贴以下命令。

 nano ~/.ssh/known_hosts

第 3 步

删除有问题的条目。 如果您不确定选择哪一个,请查看您的旧 IP 地址和当前 IP 地址。 另一种选择是删除所有条目。

第4步

键入Ctrl + X ( ^X ) 退出并在提示您是否要保存修改后的缓冲区时选择Y表示是。

终端纳米编辑器
终端纳米编辑器

您现在应该能够再次连接到您的网站和/或服务器。


或者,您可以删除整个known_hosts文件并让它重新填充。 在终端中输入以下命令。

 rm .ssh/known_hosts

如何在 Windows 上修复 known_hosts 文件

在从 Windows 切换到 Mac 之前,我实际上从未遇到过这个错误。 但我正在为您记录以下内容以防万一。 在 Windows 上,它们没有known_hosts文件,信息(IP 地址和凭据)存储在注册表中。 请按照以下步骤操作。

第1步

打开开始菜单并搜索“regedit”。 点击“进入”。

注册编辑
注册编辑

第2步

浏览到以下注册表文件夹:

 HKEY_CURRENT_USER\SoftWare\SimonTatham\PuTTY\SshHostKeys
注册表编辑器 SshHostKeys
注册表编辑器 SshHostKeys

第 3 步

在“SshHostKeys”文件夹中,删除有问题的条目。 如果您不确定选择哪一个,请查看您的旧 IP 地址和当前 IP 地址。 另一种选择只是删除所有条目。

当您收到以下提示时,单击“是”:

删除某些注册表值可能会导致系统不稳定。 确定要永久删除此值吗?

关闭注册表编辑器。 您现在应该能够再次连接到您的网站和/或服务器。

概括

遇到这样的错误总是很烦人。 您现在可能会认为他们将在操作系统中内置更简单的方法来解决它们。 现在,我们将不得不求助于我们的逐步故障排除过程。

希望现在您已重新连接并重新开始工作! 如果这有帮助或您遇到问题,请在下面发表评论。