Vagrant up挂在" ssh auth方法:私钥"

时间:2016-01-20 18:39:28

标签: ssh vagrant

我在使用virtualbox 5.0.10运行流浪汉版本1.8.1时出现了一些问题,框精确64。我的操作系统是Windows 7。

基本上,当我跑

vagrant up

... this happens

到目前为止,我已尝试过以下方法:

打开另一个命令行并运行无数不同的代码,包括:

vagrant ssh
vagrant ssh-config
ssh 127.0.0.1 

我也尝试过此视频中显示的修复程序(无效)

https://www.youtube.com/watch?v=vDQpfb0eFTc

除了手动指定ssh密钥和更改ssh密钥外。

我尝试手动ssh到框中会遇到"连接被拒绝"错误。

当我通过virtualbox打开VM GUI时,它会在登录页面停止,而不是其他人报告的启动菜单。

我的vagrantfile未经修改,但是我尝试了上述所有内容:

config.ssh.username = "vagrant"
config.ssh.password = "vagrant"

..没有工作

我也尝试添加这个(使用和不添加上述Vagrantfile)

config.ssh.private_key_path = "C:/Users/Luka/.vagrant.d/insecure_private_key"

这也没有给我什么。

8 个答案:

答案 0 :(得分:8)

我知道这是一个老话题,但我遇到了同样的问题,对我而言,解决方案是启用BIOS中的硬件虚拟化(VT-x),这是Windows操作系统所必需的运行任何类型的虚拟机。

我希望这会帮助那些偶然发现这一点的人。

答案 1 :(得分:4)

以“ ubuntu / focal64”出现在我身上。我尝试了不同的解决方案,但没有任何效果。
将框切换到“ ubuntu / xenial64”-一切都成功加载。

我的设置:
win10主页10.0.19041内部版本19041
流浪汉2.2.9
virtualbox 6.2

答案 2 :(得分:3)

我花了好几个小时试图解决这个问题,并尝试了上面列出的所有解决方案以及更多,但我一无所获。

我在运行 vagrant up 时遇到的错误:

[...]
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
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.
[...]

我决定继续我在运行的虚拟机的 VirtualBox 日志中看到的这个事件:

00:00:01.752390 HM: HMR3Init: Attempting fall back to NEM: VT-x is not available

当我看到它时,我决定使用“英特尔处理器识别实用程序”(来自英特尔网站)来验证是否启用了 VT-x。令我惊讶的是,它显示“英特尔虚拟化技术”已禁用:

enter image description here

我很确定在我的 BIOS 中启用了 VT-x,但我再次检查以确保。确实,我的 BIOS 中启用了 VT-x。

被我所看到的东西难住了,我一直在互联网上寻找为什么在 BIOS 中启用了 VT-x,但显示为被操作系统禁用。许多文章一直指出“Hyper-V”是罪魁祸首。因此,我使用 Windows 功能实用程序卸载了“Hyper-V”[以及我的 Docker 桌面,因为它依赖于 Hyper-V 来运行],但英特尔 CPU 识别实用程序一直显示 VT-x 已禁用。

接下来我尝试删除所有在 Windows 10“Windows 功能”中被标识为“干扰”Hyper-V 的项目[在搜索栏中列为“打开或关闭 Windows 功能”]。红色的项目是我删除的项目:

  1. 容器
  2. Hyper-V
  3. 虚拟机平台
  4. Windows 管理程序平台
  5. 适用于 Linux 的 Windows 子系统

enter image description here

我重新启动了我的电脑,再次使用 CPU 识别实用程序检查了 VT-x 的状态,但它仍然被禁用。

在这一点上,我几乎要解决这个问题,直到我发现有人在提升的命令提示符 (cmd.exe) 中手动运行此命令的文章:

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

我重新启动了我的电脑,使用 CPU 识别实用程序检查了 VT-x 的状态,令我惊讶的是它显示为已启用!!:

enter image description here

当我在 VT-x 显示为启用后检查正在运行的 VM 中的 VirtualBox 日志时,我可以看到以下事件:

00:00:01.556258 HM: HMR3Init: VT-x w/ nested paging and unrestricted guest execution hw support

在我的命令行窗口中,在 vagrant up 之后,我现在可以看到:

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:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
default: Machine booted and ready!

我的解决方案简而言之?

使用诸如“英特尔处理器识别实用程序”[或任何取决于您的 CPU 架构的实用程序] 等实用程序,确保操作系统将 VT-x 视为已启用。我相信 Windows 10 中存在导致此问题的错误,但我一直无法解决(而且我没有时间这样做)。 Hyper-V 似乎是所有问题的根本原因。对于担心无法再使用 Docker Desktop 的人,我相信有非 Hyper-V 解决方案的替代方案(即免费的 Docker EE??)。

祝你好运。

答案 3 :(得分:1)

当我尝试使用 laravel / homestead 流浪者盒子时,我也遇到了这个问题。对我来说,我发现问题是由WindowsFeature VirtualMachinePlatform 引起的。自从我在计算机中使用WSL 2以来,我就启用了它。只需禁用该功能就可以解决问题。

要禁用 VirtualMachinePlatform 功能,请以管理员身份打开PowerShell并运行:

dism.exe /online /Disable-Feature /FeatureName:VirtualMachinePlatform /NoRestart

然后重启您的计算机,然后尝试无所事事。它对我有用。

您只需以管理员身份在PowerShell上运行以下命令即可再次启用 VirtualMachinePlatform 功能:

dism.exe /online /Enable-Feature /FeatureName:VirtualMachinePlatform /all /NoRestart

然后再次重启您的计算机,然后再次启用该功能。

我也报告了与此相关的问题。如果有人需要跟踪该错误click here

答案 4 :(得分:0)

这也发生在框ubuntu/bionic64上。通过切换到ubuntu/trusty64,它可以正常运行。 (Win10 Pro v2004内部版本19041.572)

在状态here下,有一个confirmed bug导致一些较新的Ubuntu机器启动缓慢,在这种情况下导致SSH超时。 您可以通过在Vagrantfile中添加以下自定义项来解决此问题:

config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--uart1", "0x3F8", "4"]
    vb.customize ["modifyvm", :id, "--uartmode1", "file", File::NULL]
end

答案 5 :(得分:0)

如果其他方法仍无济于事,也值得尝试一下。

在VirtualBox中,转到设置,单击网络,然后单击高级,然后更改您的网络类型到: Intel PRO / 1000 MT Server (82545EM)并刷新 MAC地址

enter image description here

请确保您的端口转发设置为默认值,如下图所示:

enter image description here

答案 6 :(得分:-1)

在尝试了很多问题之后,我还遇到了“在ssh auth方法上流浪挂起:私钥”的问题。但是正如莫尔基茨(Morkitz)所说,启用硬件虚拟化也解决了我的问题。

我的堆栈是 1. Win 8.1企业版 2.流浪汉2.1.2 3. Virtual Box 5.2.18

答案 7 :(得分:-1)

希望这对某人有所帮助,因为我在升级Virtualbox后在很长一段时间内都在与我抗争,很明显,由于时间限制,我没有很好地进行调查,然后在阅读了很多文章之后,决定清除计算机上的known_hosts文件,问题已经解决。