【问题标题】:Vagrant hangs at "SSH auth method: Private keyVagrant 挂在“SSH 身份验证方法:私钥
【发布时间】:2022-04-02 20:37:40
【问题描述】:

我在 Digital Ocean VPS 上运行 VirtualBox 5.0.24 和 Vagrant 1.8.5 Ubuntu 14.04 LTS Precise 我正在使用盒子ubuntu/precise64 一切正常,但是当我这样做时 vagrant up 它挂在了

SSH auth method: Private key

和退出超时。现在,我可以考虑增加执行时间,但在给出该错误之前已经花费了大量时间。我不知道我做错了什么。 这是我的 VAGRANTFILE

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  config.vm.box = "ubuntu/precise64"
  
  config.vm.provider :virtualbox do |vb|
    vb.customize ['modifyvm', :'1cf9e703-607e-4338-9162-20abbeca94b0', '--pae', 'on']
    vb.customize ['modifyvm', :'1cf9e703-607e-4338-9162-20abbeca94b0', '--hwvirtex', 'off']
    vb.customize ['modifyvm', :'1cf9e703-607e-4338-9162-20abbeca94b0', '--vtxvpid', 'off']
  end

end

【问题讨论】:

标签: ubuntu ssh vagrant virtual-machine virtualbox


【解决方案1】:

我也遇到了这个问题,我通过打开“Oracle Virtual Box Manager”GUI 解决了这个问题。转到“设置”->“网络”并选择“适配器 1”,然后通过单击箭头展开选项并确保选中“电缆已连接”。

【讨论】:

  • 非常感谢这个提示。我在这个问题上被困了大约一天,这为我解决了这个问题。
  • 默认选中“已连接电缆”选项。我仍然面临同样的问题。
  • 如果你们这样做后仍然有问题,我建议您按照类似问题的答案:stackoverflow.com/a/57335407/1679112
  • 被卡住 4 小时后,我发现了这条评论。它被选中了,但我只是取消选中它并再次检查它,并且在后台继续配置并解除卡住。非常感谢。
  • 非常感谢。但它被勾选了,同样的问题也存在。但是,在我将config.vm.network "private_network", ip: "192.168.10.10", auto_config: false 添加到 Vagrantfile 并同时勾选“已连接电缆”后,该问题已得到解决。不确定两者都是解决问题所必需的。
【解决方案2】:

在一些神秘的论坛上找到了以下解决方案,它可以通过将其添加到 Vagrantfile 底部的 end 行之前:

    config.vm.provider "virtualbox" do |vb|
        vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
    end

与手动更改 VirtualBox AFAIK 中的设置相同,但我个人更喜欢基础架构即代码解决方案。这样一来,同事就不必在某个地方处理同样的问题。

【讨论】:

  • 这个效果最好!共享您的 vagrantfile 时(即因为您在团队中工作),这绝对是要走的路
【解决方案3】:

在花了数周时间阅读和测试我找到的所有答案之后,甚至那些没有标记为正确的答案,我不记得在哪里,有人提到了关于 Guest Additions 的一些东西......我找到了插件并安装了它:

    vagrant plugin install vagrant-vbguest

它就像一个魅力。问题解决了。

堆栈:Virtualbox 6.0、Vagrant 2.2.7、操作系统 Fedora 31

【讨论】:

    【解决方案4】:

    我发现我的 WSL 在我的 Windows 10 上启用,因此使用此命令禁用它

    bcdedit /set hypervisorlaunchtype off
    

    但这对我没有帮助,所以我查看了 Windows 功能,发现虚拟机平台已打开,因此我查找它并链接到 WSL,因此我将其关闭,我的 ssh 密钥问题解决了。

    【讨论】:

    • 我这边也有同样的问题。我认为 Vagrant/VirtualBox 和 Windows Hypervisor 平台之间存在不兼容问题。我让 Vagrant 和 WSL 2 工作的方式是启用/禁用以下 Windows 功能:+ 虚拟机平台:开 - Windows 管理程序平台:关 + 适用于 Linux 的 Windows 子系统:开
    • 射击,我需要 Hypervisor。我们如何在不禁用 Hypervisor 的情况下解决这个问题?在 Hypervisor Win10 VM 中使用禁用该功能的虚拟机是我所能想到的,但我认为 2 层 VM 也可能会导致问题。
    • @bean 我不得不禁用虚拟机平台功能,但之后 vagrant 再次工作(WSL 没有)。因此,WSL2 在 Windows 上打破了 vagrant。
    • 2021 年更新:Microsoft WSL 2 修复了破坏 VirtualBox 虚拟化的问题。现在您可以毫无问题地同时运行 WSL 和 VirtualBox。
    • @Myster-Mayur 当前的设置是什么?我的 Windows 10 最近进行了更新,但我又回到 vagrant 不工作了。我有虚拟机平台:打开、Win Hypervisor Platform:关闭和 Win Subsys for Linux:关闭。新的正确配置是什么?
    【解决方案5】:

    截至 2021 年 5 月的更新:所以我发现这是 Vagrant 中的一个实际错误。解决方案直接来自Hashicorps' GitHub

    基本打开vagrantfile,在config.vm.provider :virtualbox do |v|下面和end之前添加这些行:

    v.customize ["modifyvm", :id, "--uart1", "0x3F8", "4"]
    v.customize ["modifyvm", :id, "--uartmode1", "file", File::NULL]
    

    如果该行是config.vm.provider :virtualbox do |vb|,那么代码将是:

    vb.customize ["modifyvm", :id, "--uart1", "0x3F8", "4"]
    vb.customize ["modifyvm", :id, "--uartmode1", "file", File::NULL]
    

    【讨论】:

      【解决方案6】:

      似乎最新版本无法在 VPS 上运行。 我必须选择旧版本的软件才能在这个 ubuntu VPS 上运行它们 我选择的版本是

      VirtualBox >= 4.3.12
      

      Vagrant >= 1.5.3
      

      这可行,但您必须配置 ssh

      【讨论】:

      • 解决方案是什么?
      【解决方案7】:

      我在 AWS EC2 Ubuntu 16.04 实例上尝试使用虚拟化(virtualbox + vagrant)时遇到了这个问题。显然,这似乎是不可能的,因为亚马逊决定阻止该选项 - virtualbox 安装将失败/您将在尝试“vagrant up”时收到标题中的消息。正如本文所说(有点老,但说服了我):

      http://cloudstacking.com.s3-website-us-east-1.amazonaws.com/posts/running-hyper-v-vmware-or-xen-on-an-aws-ec2-instance.html

      可以在这里找到更复杂的解决方案 - 但我没有尝试看看它是否有效:

      HVX: Virtual infrastructure for the cloud

      【讨论】:

        【解决方案8】:

        我的版本 virtualbox(5.1.20)、vagrant(1.9.3)。我通过删除解决了这个错误

        v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]

        我是新手,希望对你有所帮助。

        【讨论】:

          【解决方案9】:

          就我而言,我进入了一种无效状态。在vagrant up 之前运行这个命令就可以了。

          注意:谨慎使用,因为这将清除 vagrant 实例上的所有数据。

          vagrant destroy --force
          

          【讨论】:

            【解决方案10】:

            我也被困在 Windows SSH auth method: Private key(试图通过 SSH 连接到 Ubuntu 机器),然后几分钟后我就超时了。

            请注意,如果您正在运行 多个 SSH 代理(可能是非自愿的)。例如,在 Windows 中,您可以同时拥有 Pageant 和 OpenSSH 身份验证代理(可以在 Windows 服务下找到的阶梯)。在我的情况下,私钥是在 Pageant 下添加的,但 OpenSSH 身份验证代理似乎在操作系统重启后优先。

            最终禁用后者,重新启动操作系统,在 Pageant 中再次加载密钥,然后 vagrant ssh 工作。

            【讨论】:

              【解决方案11】:

              我也遇到了这个问题,我通过打开“Oracle Virtual Box Manager”GUI 并转到“设置”->“网络”并选择“适配器 1”来解决它,然后通过单击箭头展开选项并确保选中“已连接电缆”。

              我试过这个答案,发现默认情况下已经启用了。我尝试禁用和重新启用,这首先给了我以下消息Warning: Connection aborted. Retrying...,之后 vagrant 继续启动并成功完成

              【讨论】:

              • 欢迎来到 SO Rick。请注意,您的帖子并不是问题的真正答案。一旦你有足够的声誉,如果你有可以改进现有答案的贡献,请评论它而不是再次回答。
              【解决方案12】:

              好吧,我遇到了类似的问题,并在以下线程中得到了解决方案: https://forums.virtualbox.org/viewtopic.php?f=6&t=97578 这是由于我在 windows 10 上运行 docker desktop 造成的,它使用 windows SubsystemLinux 并利用 Hyper-v 启动虚拟环境。这不允许或使虚拟盒太慢而无法响应 ssh 超时并导致文件系统错误。 您应该特别关注“turtle”图标,这意味着 Virtualbox 太慢了,如果一切正常,您将在 virtualbox 控制台上看到“V”图标。按照说明停止 hyper-v 重新启动机器,它会工作。 要完全关闭 Hyper-V,请执行以下操作:

              1. 关闭所有程序。您必须重新启动主机。

              2. 请参阅我有一个 64 位主机,但无法安装 64 位来宾。本教程在第 2 步中还有一些需要注意的地方。请确保这些都已关闭。

              3. 找到命令提示符图标,右键单击它并选择以管理员身份运行。

              4. 输入以下命令: bcdedit /set hypervisorlaunchtype off

              5. 输入以下命令: 关机 -s -t 2

              6. 当计算机关闭时,将其拔下 20 秒。然后再次插入并启动 Windows 10。

              【讨论】:

                【解决方案13】:

                请务必在 vagrant 挂起时查看虚拟机终端VirtualBox。 对我来说,问题是文件系统损坏。

                我跑了:

                fsck -yf /dev/mapper/homestead--vg--root
                

                从 VirtualBox 终端,问题已解决。

                【讨论】:

                  【解决方案14】:

                  按照上面用户 Kokokoko 的建议,我在我的 vagrnt 文件中添加了以下几行。

                  vb.customize ["modifyvm", :id, "--uart1", "0x3F8", "4"]
                  vb.customize ["modifyvm", :id, "--uartmode1", "file", File::NULL]
                  

                  安装了最新的 virtualbox,确保 vm 已正确停止并且对我有用。

                  将 Virtualbox 6.1.32 与 Vagrant 2.2.10 与 Ubuntu/Xenial64 一起使用

                  【讨论】:

                    【解决方案15】:

                    我自己最近遇到了这个问题,我得出的结论是,安装Docker Destkop for Windows 导致我的系统发生了一系列变化,基本上破坏了VirtualBoxVagrant

                    我已将以下步骤作为我的最低可行解决方案

                    1. 卸载 Docker 桌面客户端
                    2. 禁用一系列与虚拟化或容器相关的 Windows 功能
                    3. 检查CPU-ZIntel Processor Identification Utility 以验证VT-x 现已启用
                    4. 在我的虚拟机上运行vagrant reload
                    5. 取消选中cable connected并重新选中cable connected
                    6. vagrant ssh 现在可以使用了。

                    我需要一次恢复每个功能,看看在再次破坏之前我能走多远。

                    这里是各种花絮的截图,以及指针:

                    (1) Windows 中禁用的容器 (2) 禁用 Hyper-V (3) 禁用虚拟机平台 (4) 禁用 Windows Hypervisor 平台 (5) 禁用 WSL (6) 现在 VT-x 又出现了(之前没有出现过) (7) 现在 SLAT 再次出现(之前 没有 出现) (8) CPU-Z 也能看到 VT-x

                    我现在还注意到,Enable Nested VT-xVirtualBox 的 CPU 设置菜单中不再灰显。

                    【讨论】:

                      猜你喜欢
                      • 2019-10-11
                      • 1970-01-01
                      • 1970-01-01
                      • 2021-01-14
                      • 2017-09-08
                      • 2017-04-19
                      • 2017-12-30
                      • 1970-01-01
                      • 2017-02-18
                      相关资源
                      最近更新 更多