【问题标题】:Vagrant asks for password after SSH key updateVagrant 在 SSH 密钥更新后要求输入密码
【发布时间】:2023-05-12 01:02:01
【问题描述】:

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

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

我在这里错过了什么?

【问题讨论】:

    标签: ssh vagrant


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      我有这个问题,它似乎是由多个 VM 运行引起的。我输入 vagrant ssh-congfig 并注意到它报告了端口 2200 而不是我正在连接的 2222。当我在 2200 上连接时,它不需要密码。不知道你是否也一样,但这是发生在我身上的事。

      【讨论】:

        【解决方案3】:

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

        PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa
        

        在我的情况下,删除此内容后,vagrant ssh 不再要求我输入密码。

        【讨论】: