SSH 密钥更新后 Vagrant 要求输入密码

Vagrant asks for password after SSH key update

我在切换到新机器后重新制作了我的 SSH 密钥,并复制到我打包的现有定制 Vagrant 盒子上。

当我尝试通过 ssh 进入该框时,出现 REMOTE HOST IDENTIFICATION HAS CHANGED 错误。所以我清除了 known_hosts 中的条目,然后通过 ssh 返回到框中。新密钥已被接受,但现在每次我 ssh 时,我都需要输入默认的 vagrant 密码,而不仅仅是使用我的 ssh 密钥。

我在这里错过了什么?

我遇到了这个问题,它似乎是由多个 VM 运行 引起的。我输入 vagrant ssh-congfig 并注意到它报告了端口 2200 而不是我正在连接的 2222。当我在 2200 上连接时,它不需要密码。不确定这对你来说是否相同,但这就是发生在我身上的事情。

"The new key was accepted"?
您是否已验证 Host 上的私钥和 Guest 上的 public 密钥配对?
如果密钥被接受,则不会弹出密码提示。

要验证您的 private/public 密钥:

在主机上找到您的私钥 OS(流浪者的 IdentityFile):

vagrant ssh-config

从私钥生成 public 密钥:

ssh-keygen -y -f private_key > public_key
cat public_key

将生成的 public_key 与访客 OS 上的 public_key 进行比较(您可以通过密码登录)。

cat ~/.ssh/authorized_keys

您的 ~/.ssh/config 中是否有如下行?

PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa

就我而言,在删除它之后,vagrant ssh 不再询问我密码。