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

时间:2016-11-04 10:43:01

标签: ssh

我的计算机上安装了多个虚拟机,我通过ssh连接到

ssh vm1@localhost

ssh vm2@localhost

因此,每次我连接到不同的vm时,我都需要编辑我的~/.ssh/known_hosts文件,以便删除:“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!”消息。

有没有办法自动信任localhost上的所有虚拟机?

3 个答案:

答案 0 :(得分:2)

您可以尝试修改~/.ssh/known_hosts文件。

删除文件中的所有内容是一种选择**,您可以使用nano或您喜欢的编辑器来完成。例如:

nano ~/.ssh/known_hosts

重试连接,它应该可以工作

ssh -i ~/.ssh/yourkey.pub vm1@localhost

**不过,如果仅删除与冲突相关的行,那将是一个好习惯。

答案 1 :(得分:1)

在您的配置中(例如〜/ .ssh / config),您可以删除特定主机名的已知主机:

Host localhost
        HostName localhost
        UserKnownHostsFile=/dev/null
        StrictHostKeyChecking=no

credit

答案 2 :(得分:0)

您可以通过将localhost中的NoHostAuthenticationForLocalhost设置为yes来禁用专门用于~/.ssh/config的主机检查。

NoHostAuthenticationForLocalhost yes

请注意,通过跳转主机连接到另一台计算机上的localhost时,此方法不起作用。

或者,您仍然可以通过为每个主机定义一个不同的HostKeyAlias来实现主机检查,就像平常一样。 这还有在跳转主机上工作的额外好处。 以下~/.ssh/config的示例配置对此进行了演示。

Host vm1
  HostName localhost
  HostKeyAlias vm1.localhost

Host vm2
  HostName localhost
  HostKeyAlias vm2.localhost

ssh_config manpage在这种情况下建议这样做。

HostKeyAlias 指定在查找或保存时应使用的别名,而不是真实的主机名 主机密钥数据库文件中的主机密钥以及验证主机证书时的密钥。这个 该选项对于建立SSH连接隧道或在单个服务器上运行的多个服务器很有用 主机。