Vagrant挂起" SSH身份验证方法:私钥

时间:2016-07-19 16:08:06

标签: ubuntu ssh vagrant virtual-machine virtualbox

我在VirtualBox 5.0.24上运行的Digital Ocean VPS上运行1.8.5和Vagrant Ubuntu 14.04 LTS Precise 我正在使用方框ubuntu/precise64 一切正常,但当我vagrant up时,它挂在

SSH auth method: Private key

退出并给出时间。现在,我可以考虑增加执行时间,但在发出错误之前已经花了很长时间。我不知道自己做错了什么。 这是我的VAGRANTFILE

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

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.

# Every Vagrant development environment requires a box. You can search for
# boxes at https://atlas.hashicorp.com/search.
  config.vm.box = "ubuntu/precise64"

# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false

# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# config.vm.network "forwarded_port", guest: 80, host: 8080

# Create a private network, which allows host-only access to the machine
# using a specific IP.
# config.vm.network "private_network", ip: "192.168.33.10"

# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"

# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "../data", "/vagrant_data"

# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
# config.vm.provider "virtualbox" do |vb|
#   # Display the VirtualBox GUI when booting the machine
#   vb.gui = true
#
#   # Customize the amount of memory on the VM:
#   vb.memory = "1024"
# end
#
# View the documentation for the provider you are using for more
# information on available options.

# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
# such as FTP and Heroku are also available. See the documentation at
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
# config.push.define "atlas" do |push|
#   push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
# end

# Enable provisioning with a shell script. Additional provisioners such as
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
# documentation for more information about their specific syntax and use.
# config.vm.provision "shell", inline: <<-SHELL
#   apt-get update
#   apt-get install -y apache2
# SHELL
  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

12 个答案:

答案 0 :(得分:10)

我也有这个问题,我通过打开&#34; Oracle Virtual Box Manager&#34;来修复它。 GUI并转到&#34;设置&#34; - &GT; &#34;网络&#34;并选择&#34;适配器1&#34;然后通过单击箭头展开选项并确保&#34; Cable Connected&#34;检查。

答案 1 :(得分:2)

enter image description here

我发现我的Windows 10上启用了WSL,因此使用此命令将其禁用了

bcdedit /set hypervisorlaunchtype off

但是它并没有帮助我,所以我浏览了Windows的功能,发现Virtual Machine Platform已打开,因此我对其进行了查找,并将其链接到WSL,因此我将其关闭并解决了ssh密钥问题。

答案 2 :(得分:1)

似乎最新版本不适用于VPS。 我不得不选择旧版本的软件在这个ubuntu VPS上运行它们 我选择的版本是

VirtualBox >= 4.3.12

Vagrant >= 1.5.3

这样可行,但您必须配置ssh

答案 3 :(得分:1)

在某个奥秘论坛上找到了以下解决方案,它的工作原理是将其添加到Vagrantfile底部的end底部:

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

与在VirtualBox AFAIK中手动更改设置相同,但是我个人更喜欢将基础结构用作代码解决方案。这样,同事不必在任何地方处理相同的问题。

答案 4 :(得分:1)

花了数周的时间阅读并测试了我发现的所有答案,甚至没有被标记为正确的答案,我也不记得在哪里,有人提到了有关Guest Additions的东西...我找到了插件并安装了它:< / p>

    vagrant plugin install vagrant-vbguest

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

堆栈:Virtualbox 6.0,Vagrant 2.2.7,OS Fedora 31

答案 5 :(得分:1)

截至 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 :(得分:0)

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

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

答案 7 :(得分:0)

我的版本virtualbox(5.1.20),vagrant(1.9.3)。我通过删除

解决了这个错误

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

我是新手,希望这有帮助。

答案 8 :(得分:0)

就我而言,我进入了一种无效状态。在vagrant up之前执行此命令即可达到目的。

注意:请谨慎使用,因为这会清除流浪实例上的所有数据。

vagrant destroy --force

答案 9 :(得分:0)

我也陷入了同一个var args = TestContext.Properties["YourTestProject.Args"].Split(); 的Windows中(试图通过SSH连接到Ubuntu盒),然后几分钟后我超时了。

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

最终禁用了后者,重新启动操作系统,将密钥再次加载到Pageant中,然后SSH auth method: Private key起作用了。

答案 10 :(得分:0)

<块引用>

我也遇到了这个问题,我通过打开“Oracle Virtual Box Manager”GUI 并转到“设置”->“网络”并选择“适配器 1”,然后通过单击箭头展开该选项并修复它确保选中“Cable Connected”。

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

答案 11 :(得分:0)

好吧,我遇到了类似的问题,并在以下线程中得到了解决方案: https://forums.virtualbox.org/viewtopic.php?f=6&t=97578 这是由于我在 Windows 10 上运行 docker desktop 造成的,它使用 Windows SubsystemLinux 并利用 Hyper-v 启动虚拟环境。这不允许或使 Virtual box 响应太慢而导致 ssh 超时并导致文件系统错误。 您应该特别关注“海龟”图标,这意味着 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。