如何在每次 vagrant up 命令后保持 RSA 密钥的指纹不发生变化?

Posted

技术标签:

【中文标题】如何在每次 vagrant up 命令后保持 RSA 密钥的指纹不发生变化?【英文标题】:How do I keep the fingerprint for the RSA key from changing after every vagrant up command? 【发布时间】:2015-10-17 03:58:46 【问题描述】:

我正在使用 Vagrant + VirtualBox + CentOS 6.5 (box) 创建虚拟机。每次我向 VM 发出命令 vagrant up 和 SSH 时,都会收到以下消息。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @警告:远程主机标识已更改! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ 可能有人在做一些讨厌的事情! 有人现在可能正在窃听您(中间​​人攻击)! 主机密钥也可能刚刚更改。 远程主机发送的 RSA 密钥的指纹是 SHA256:VGRuX5IMJOd+PW6T4jo/ONm6D8vClUmVEaSI7j/nWb8。 请联系您的系统管理员。 在 /home/root/.ssh/known_hosts 添加正确的主机密钥以消除此消息。 /home/root/.ssh/known_hosts:6 中的违规 RSA 密钥 weetube 的 RSA 主机密钥已更改,您已要求严格检查。 主机密钥验证失败。

请注意以下事项。

VM 设置为静态 IP(例如 10.211.55.10) 主机 (Windows) 的主机文件已修改(例如 10.211.55.10 myvm) 我使用 cygwin 进行 SSH(例如 ssh root@myvm)

我还尝试通过将 /etc/ssh 复制到 /vagrant/ssh 进行引导,然后在 VM 配置上,将 /vagrant/ssh/* 复制回 /etc/ssh,但这似乎没有帮助。

绕过此消息的唯一方法是(使用 Cygwin)并从 ~/.ssh/known_hosts 中删除来自 myvm 的条目。我不想每次必须重新创建 VM 时都这样做(例如vagrant up)。

关于如何避免这个问题的任何想法?

【问题讨论】:

【参考方案1】:

我不知道如何在重建 VM 时使指纹保持不变。但是,您可以设置 ssh 配置以忽略指纹(仅适用于您的 VM!)

在:~/.ssh/config(我使用的是 macOS,ssh 配置文件可能位于其他系统的其他位置):

Host [IP of your VM]
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile ~/.vagrant.d/insecure_private_key

【讨论】:

以上是关于如何在每次 vagrant up 命令后保持 RSA 密钥的指纹不发生变化?的主要内容,如果未能解决你的问题,请参考以下文章

每次使用 vagrant up 时我都必须删除导出文件

vagrant ssh -c 并在连接关闭后保持后台进程运行

如何在`vagrant up`命令中指定提供程序?

vagrant up命令抛出ssl错误

如何在'vagrant up'上传递参数并将其放在Vagrantfile的范围内?

VirtualBox,Vagrant和Laravel Homestead“vagrant up”错误