Vagrant SSH失败,VirtualBox


39

流浪到ssh部分时失败:

myterminal$ vagrant up
[default] VM already created. Booting if its not already running...
[default] Running any VM customizations...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- ssh: 22 => 2222 (adapter 1)
[default] -- db2: 30003 => 30003 (adapter 1)
[default] Cleaning previously set shared folders...
[default] Creating shared folders metadata...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

然后,当我随后尝试使用vagrant ssh或vagrant reload或类似方法进行连接时,得到以下信息:

myterminal$ vagrant reload
[default] Attempting graceful shutdown of linux...
SSH connection was refused! This usually happens if the VM failed to
boot properly. Some steps to try to fix this: First, try reloading your
VM with `vagrant reload`, since a simple restart sometimes fixes things.
If that doesn't work, destroy your VM and recreate it with a `vagrant destroy`
followed by a `vagrant up`. If that doesn't work, contact a Vagrant
maintainer (support channels listed on the website) for more assistance.

请帮忙!我真的很为难。

亲切的问候,

卢克

Answers:


10

我在安装程序中遇到了这个问题,并最终将其范围缩小到了将名称添加到本地主机文件的事实。所以我有:

127.0.0.1 localhost myname myalias

删除了myalias我添加的内容,它可以正常启动。感谢@saphirlazuli提供了与网络相关的线索。


如果我要保留myalias,该如何解决?
米奇·张

如果您想使用别名,则Debian / Ubuntu的方法是将第一行保持为just 127.0.0.1 localhost,但使用别名添加第二行,如下所示:127.0.1.1 foo bar baz
CodeGnome 2012年

26

我在Vagrant网站的“入门”框中出现了相同的问题。我下面的解决方案是针对本教程的。

我在这里找到解决方案:https : //github.com/mitchellh/vagrant/issues/391

  1. 在VagrantFile中,添加gui模式: config.vm.boot_mode = :gui
  2. vagrant up
  3. 在gui中,使用用户“ vagrant”登录(密码=“ vagrant”)
  4. int gui,run sudo /etc/init.d/networking restart,在/etc/network/interfaces文件中,您现在必须具有一个部分#VAGRANT-BEGIN [...]#VAGRANT-END
  5. vagrant reload在物理机上运行

3
这对我有用,谢谢。我之前运行过Vagrant,然后停止使用新包装。知道是什么原因造成的吗?
Andrew Vit

sudo /etc/init.d/networking restart对我有用,谢谢!
Anatoly

2
我确实重新启动了,但是在/ etc / network / interfaces中我没有#VAGRANT-BEGIN [...]#VAGRANT-END的部分,为什么有些线索?我可以手动添加吗?
sparrovv 2011年

1
我知道了The following settings shouldn't exist: boot_mode
卡林,2016年

1
在最新版本中,您必须将v.gui = true设置为提供程序配置
Calin

6

对我来说,这是一个间歇性问题,并且肯定与网络有关。我在Vagrant GitHub问题#391#455中找到了更多有用的信息。我试图在VirtualBox设置中删除我未使用的仅主机网络(建议将其作为GitHub问题之一的潜在修补程序),但似乎无济于事。

以gui模式启动(如上一个答案中所述)是调试/修复问题的好方法。我发现这是因为无论出于什么原因,VM都无法在启动时获取IP地址。从GUI模式开始,然后登录(无用/无用)并sudo dhclient在来宾OS中运行,将检索IP地址,并且Vagrant设置过程将成功完成。

仍在寻找永久性的解决方法。

希望这可以帮助!

[编辑添加]:GitHub问题#455中添加了一个有用的建议,其中涉及将以下配置添加到您的Vagrantfile

config.ssh.max_tries = 150

这目前对我有用,并且似乎很有意义,因为问题似乎与超时有关-增加尝试次数应会增加SSH进程及时成功的可能性。首先这是一个间歇性的问题,所以我会保留一段时间,但是用手指交叉它会起作用的!感谢karel1980建议修复。


在VirtualBox设置中删除未使用的仅主机的网络对我来说很有效!谢谢!
2013年

1
似乎此设置自1.3.X起已被贬低-github.com/berkshelf/berkshelf/pull/856
Jeremy Hajek

5

如果vagrant up失败,我建议以下内容:

  1. 使用gui模式引导:这有助于查看映像是否损坏(例如,在开始配置之前映像是否已损坏),该映像是config.vm.boot_mode = :gui在您的Vagrantfile
  2. 调试日志记录:使用debug运行配置,chef.log_level = :debug
  3. 重新包装盒子:有时您需要在其他所有东西都运行之前安装一些东西-引导程序。这是不是真的有可能,所以最简单的就是启动虚拟机无任何配置,安装你需要什么,并重新包装盒(vagrant box repackage foo,然后vagrant import foo再添加foo你的Vagrantfile

注意:gui模式可能会有其他问题,例如,对我0.7.5来说,启用gui时,vagrant的预配置不起作用。虽然调试实际的盒子仍然很棒。


2

我的网卡类型最初设置为82540EM。我将其更改为Am79C973,现在Vagrant up每次都能工作。我已经启动了多个VM,甚至重新启动了主机,它仍然可以工作。

该命令是:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

记住要重新包装并将包装盒读给Vagrant。

我在Core i7-2600机器上使用VirtualBox 4.1.16将64位Debian Squeeze作为主机和来宾运行。


1

如果已经安装了内核模块,请尝试直接使用VirtualBox启动VM。这将向您显示在VM启动时遇到的任何启动错误。诸如文件系统错误之类的问题将使SSH服务器守护程序无法正常运行。


1

我在osx上遇到了同样的问题(VirtualBox 4.1.0和Vagrant 0.8.6),对我来说,唯一的帮助是:

  1. 通过登录/通过:gui登录:无业游民/无业游民
  2. 修改“ /etc/rc.local”文件,使其在“ exit 0”之前包含“ sh /etc/init.d/networking restart”行。
  3. 禁用:gui
  4. 流浪者重装

我在以下网址找到了这个:https//github.com/mitchellh/vagrant/issues/391 thx mikhailov。


1

我有同样的问题。在我的情况下,未启用64位仿真。在我的BIOS中启用此功能可以解决此问题。


1

由于磁盘问题,我的来宾盒无法正常启动。

我强迫VM通过关闭

VBoxManage controlvm关机

然后,我修改了我的代码,Vagrantfile使其包含以下行:

config.vm.boot_mode =:gui

接下来,我重新跑

无所事事

在弹出的GUI中,我必须运行“磁盘修复程序”实用程序。

运行磁盘实用程序后,我的VM已成功启动,然后可以运行vagrant ssh


1

我像这样取消注释Vagrantfile中的部分:

  config.vm.provider :virtualbox do |vb|
    # Don't boot with headless mode
    vb.gui = true

    # Use VBoxManage to customize the VM. For example to change memory:
    # vb.customize ["modifyvm", :id, "--memory", "1024"]
  end

我保存了,然后我做了

vagrant reload

然后一切正常。我不确定为什么能解决这个问题。



0

我的问题是

/etc/hosts

我有进入

127.0.1.1 lucid32

我的方框名称在哪里lucidtest,我将上面的行更改为

127.0.1.1 lucidtest

而且有效。


0

此消息表明ssh服务器未在VM上运行。确保已安装

sudo apt-get install openssh-server

并运行

ssh localhost

不应该给出错误。

要排除流浪汉中的错误,您应该通过以下方法直接尝试将ssh进入vm:

ssh vagrant @ localhost -p2222

(假设默认用户和端口转发)


0

在Windows 7上运行

vagrant ssh

如果你得到这样的东西...

`vagrant ssh` isn't available on the Windows platform. You are still able
to SSH into the virtual machine if you get a Windows SSH client (such as
PuTTY). The authentication information is shown below:

Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: U:/.vagrant.d/insecure_private_key

那你应该用这样的东西...

ssh vagrant@127.0.0.1 -p 2222 -i /cygdrive/u/.vagrant.d/insecure_private_key

请注意,我在Windows框而不是Putty上使用cygwin。


OP没有使用Windows 7
坦纳福克纳

谢谢r.tanner.f-未指定操作系统,这对我有所帮助,希望对其他人有所帮助。
Artistan 2012年

不知道您为什么被低估,这似乎可以帮助其他人
Mark

0

这是错误的另一个可能原因

[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

可以在配置文件中指定用户名,如下所示:

config.ssh.username = "badusername"

如果该用户名不存在或由于某种原因无法登录,则您和Vagrant都将无法通过SSH进入虚拟机。因此,即使VM实际上正在运行并且正常运行,Vagrant也将“无法连接”。


0

我的问题是vagrant ssh什么也做不了。

我删除~/.ssh/config并解决了问题。将文件复制到某个位置,或者如果您想保留它,则将其重命名。


在本地还是远程系统上?
Jeremy Hajek '18

0

与其他人一样,我使用了GUI(我一直在使用它来防止出现此类问题)

config.vm.boot_mode = :gui

然后,我使用VirtualBox菜单,因为此处的命令不起作用。在菜单中选择Machine> Reset,然后可以使用ssh。


0

我关闭了正在运行的虚拟机,并创建了一个新的基盒:

  1. 关闭我要导出的VM
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.