我的计算机上安装了多个虚拟机,我通过ssh连接到
ssh vm1@localhost
或
ssh vm2@localhost
因此,每次我连接到不同的vm时,我都需要编辑我的~/.ssh/known_hosts
文件,以便删除:“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
”消息。
有没有办法自动信任localhost上的所有虚拟机?
答案 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
答案 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连接隧道或在单个服务器上运行的多个服务器很有用 主机。