Vagrant SSH 鉴权失败

173

SSH认证的问题:

==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...

我可以通过 Ctrl+C 退出身份验证循环,然后手动成功进行ssh。

我在虚拟机中执行了以下步骤:

  • 启用了所有用户的远程登录

  • 使用0700权限创建了~/.ssh目录。

  • 使用0600权限创建了~/.ssh/authorized_keys文件。

  • 此公钥粘贴到~/.ssh/authorized_keys中。

我还尝试使用私有(hostonly)网络而不是公共(bridged)网络,使用Vagrantfile中的以下行:

config.vm.network "private_network", ip: "172.16.177.7"

我得到相同的输出(除了Adapter 2: hostonly),但无法手动ssh。

我还尝试过 config.vm.network "private_network", ip: "10.0.0.100"

我还尝试在Vagrantfile中设置config.ssh.password。这确实输出了SSH auth method: password,但仍无法通过身份验证。

我还尝试重新构建虚拟机并重新检查上述所有内容。

其他人的成功配置,所以肯定是我做错了些什么。

我在这个帖子中找到了一些线索并启用了GUI,但没有帮助。

32个回答

0
在这里的所有回复中,有很多值得尝试的好方法。为了完整起见,如果您像@Bizmate建议的那样执行
ssh vagrant@localhost -p 2222
并且失败了,请确保您的guest/vagrant机器的/etc/ssh/sshd_config中有
AllowUsers vagrant

0

这篇文章是为那些像我一样犯傻的人,或者遇到了一些奇怪的vagrant机器问题的人准备的。当你更改了vagrant用户的主目录权限(无论是故意还是意外),也会出现此错误。

您可以使用密码('vagrant')登录(如其他帖子中所述),然后运行以下命令以修复权限:

sudo chown -R vagrant:vagrant /home/vagrant

然后,您应该能够再次登录而无需输入密码。

简而言之:您的vagrant主目录权限不正确。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接