我在切换到新机器后重新设置了我的SSH密钥,只是复制了我打包的现有自定义Vagrant盒子。
当我尝试ssh到框中时,我收到了REMOTE HOST IDENTIFICATION HAS CHANGED
错误。所以我清除了known_hosts
的输入,然后ssh回到了框中。新密钥已被接受,但现在每次我输入时都需要输入默认的vagrant密码,而不是仅使用我的ssh密钥。
我在这里缺少什么?
答案 0 :(得分:1)
“接受了新密钥”?
您是否验证了Host上的私钥和Guest上的公钥配对?
如果密钥被接受,则不会弹出密码提示。
验证您的私钥/公钥:
在主机操作系统上找到您的私钥(IdentityFile for vagrant):
vagrant ssh-config
从私钥生成公钥:
ssh-keygen -y -f private_key > public_key
cat public_key
将生成的public_key与Guest OS上的public_key进行比较(您可以通过密码登录)。
cat ~/.ssh/authorized_keys
答案 1 :(得分:0)
我有这个问题,它似乎是由多个VM运行引起的。我键入vagrant ssh-congfig
并注意到它报告了端口2200而不是我连接的2222。当我在2200上连接时,它不需要密码。不确定这对你来说是否相同,但这就是发生在我身上的事。
答案 2 :(得分:0)
您的 ~/.ssh/config
中是否有类似下面的行?
PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa
就我而言,在删除它后,vagrant ssh
不再要求我输入密码。