📅  最后修改于: 2023-12-03 14:57:25.765000             🧑  作者: Mango
当程序员在使用 Shell-Bash 连接到远程主机时,有时候会出现类似以下的警告信息:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
这个警告信息的含义是远程主机的标识发生了变化。也就是说,当你第一次连接到这个远程主机时,Shell-Bash 会保存远程主机的 SSH 公钥。如果此后远程主机的 SSH 公钥发生了变化,那么当你再次连接到这个远程主机时,就会出现上述警告信息。
如果你确定远程主机的 SSH 公钥确实发生了变化,那么可以按照以下步骤来解决问题:
ssh-keygen -R [远程主机]
;yes
即可继续连接。这种情况通常是由于你连接到了一个新的远程主机或者远程主机的 SSH 服务被重新配置了。可能是因为你新购买了一台虚拟私有服务器(VPS),或者你的团队在更换新的服务器,迁移数据等操作。
yes
,有没有办法自动接受新的公钥?如果你觉得每次都手动输入 yes
很麻烦,可以通过以下两种方式来自动接受新的公钥:
-o StrictHostKeyChecking=no
。如 ssh -o StrictHostKeyChecking=no user@host
。这个选项的作用是忽略对远程主机的公钥进行验证。~/.ssh/config
中添加以下行:Host *
StrictHostKeyChecking no
这个配置将使所有 SSH 连接自动接受新的公钥,你不再需要手动输入 yes
。但是这种方式需要注意安全性问题,慎用。
以上就是关于警告:远程主机标识已更改的介绍和解决方案。在连接远程主机时,务必要注意主机的安全性,确认远程主机的公钥是否信任。