📜  警告:远程主机标识已更改! - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:57:25.765000             🧑  作者: Mango

警告:远程主机标识已更改! - Shell-Bash

简介

当程序员在使用 Shell-Bash 连接到远程主机时,有时候会出现类似以下的警告信息:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

这个警告信息的含义是远程主机的标识发生了变化。也就是说,当你第一次连接到这个远程主机时,Shell-Bash 会保存远程主机的 SSH 公钥。如果此后远程主机的 SSH 公钥发生了变化,那么当你再次连接到这个远程主机时,就会出现上述警告信息。

解决方案

如果你确定远程主机的 SSH 公钥确实发生了变化,那么可以按照以下步骤来解决问题:

  1. 打开你的 SSH 客户端,如 Shell-Bash;
  2. 输入以下命令:ssh-keygen -R [远程主机]
  3. 输入你之前保存的密码,按回车键;
  4. 再次连接到远程主机,你将会看到一个新的警告信息,询问是否接受这个主机的新的公钥,输入 yes 即可继续连接。
常见问题
1. 我并没有更改过远程主机的 SSH 公钥,为什么会出现这个警告信息?

这种情况通常是由于你连接到了一个新的远程主机或者远程主机的 SSH 服务被重新配置了。可能是因为你新购买了一台虚拟私有服务器(VPS),或者你的团队在更换新的服务器,迁移数据等操作。

2. 我不想每次都手动输入 yes,有没有办法自动接受新的公钥?

如果你觉得每次都手动输入 yes 很麻烦,可以通过以下两种方式来自动接受新的公钥:

  • 在连接命令中添加 -o StrictHostKeyChecking=no。如 ssh -o StrictHostKeyChecking=no user@host。这个选项的作用是忽略对远程主机的公钥进行验证。
  • 在你的 SSH 客户端配置文件 ~/.ssh/config 中添加以下行:
Host *
    StrictHostKeyChecking no

这个配置将使所有 SSH 连接自动接受新的公钥,你不再需要手动输入 yes。但是这种方式需要注意安全性问题,慎用。

结语

以上就是关于警告:远程主机标识已更改的介绍和解决方案。在连接远程主机时,务必要注意主机的安全性,确认远程主机的公钥是否信任。