El ssh vagabundo falla con VirtualBox


39

vagabundo falla cuando llega a la parte 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.

Luego, cuando posteriormente intento conectarme usando sgra vagrant o recarga vagabunda o similar, obtengo esto:

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.

¡Por favor ayuda! Estoy realmente perplejo.

Saludos cordiales,

Luke

Respuestas:


10

Vi este problema con mi configuración y finalmente lo reduje al hecho de que había agregado un nombre al archivo de hosts locales. Entonces tuve:

127.0.0.1 localhost myname myalias

Eliminé el myaliasque había agregado y arrancó bien. Gracias a @saphirlazuli por la pista de que estaba relacionado con las redes.


¿Cuál es la solución si quiero preservar las mialias?
Mickey Cheong

Si desea usar un alias, la forma de Debian / Ubuntu es mantener la primera línea como justa 127.0.0.1 localhost, pero agregue una segunda línea con sus alias, así:127.0.1.1 foo bar baz
CodeGnome

26

He tenido el mismo problema con el cuadro que figura en el "Inicio" del sitio Vagrant. Mi solución a continuación es para la caja de este tutorial.

Encuentro una solución aquí: https://github.com/mitchellh/vagrant/issues/391

  1. en VagrantFile, agregue el modo gui: config.vm.boot_mode = :gui
  2. correr vagrant up
  3. en la interfaz gráfica de usuario, inicie sesión con el usuario "vagabundo" (contraseña = "vagabundo")
  4. int la interfaz gráfica de usuario, ejecutar sudo /etc/init.d/networking restart, en el /etc/network/interfacesarchivo, ahora debe tener una sección con#VAGRANT-BEGIN [...]#VAGRANT-END
  5. correr vagrant reloaden la máquina física

3
Esto funcionó para mí, gracias. Tenía Vagrant corriendo antes, luego dejó de funcionar con una nueva caja. ¿Alguna idea de lo que lo causa?
Andrew Vit

sudo /etc/init.d/networking restart me funcionó, ¡gracias!
Anatoly

2
Reinicié, pero en / etc / network / interfaces no tengo una sección con # VAGRANT-BEGIN [...] # VAGRANT-END, ¿alguna pista de por qué? ¿Puedo agregarlo manualmente?
sparrovv

1
TengoThe following settings shouldn't exist: boot_mode
Calin

1
En la última versión, debe poner v.gui = true para la configuración del proveedor
Calin

6

Este es un problema intermitente para mí, y definitivamente parece estar relacionado con las redes. Encontré información más útil en los números de Vagrant GitHub # 391 y # 455 . Intenté eliminar mi red de host no utilizada en la configuración de VirtualBox (como se recomienda como una posible solución en uno de los problemas de GitHub) que no pareció ayudar.

Comenzar en modo gui (como se describe en una respuesta anterior) es una excelente manera de depurar / solucionar problemas. Descubrí que es porque, por alguna razón, la VM no puede obtener una dirección IP al inicio. Comenzando en modo GUI, luego iniciando sesión (vagabundo / vagabundo) y ejecutándose sudo dhclienten el SO huésped recuperaría la dirección IP y el proceso de configuración de Vagrant se completaría con éxito.

Sin embargo, todavía estoy buscando una solución permanente.

¡Espero que esto ayude!

[EDITADO PARA AGREGAR]: se agregó una sugerencia útil a GitHub Issue # 455 que implica agregar la siguiente configuración a su Vagrantfile:

config.ssh.max_tries = 150

Actualmente esto funciona para mí, y parece tener sentido ya que el problema parece estar relacionado con el tiempo de espera: aumentar el número de intentos debería aumentar la probabilidad de que el proceso SSH tenga éxito en el tiempo. Es un problema intermitente en primer lugar, así que me reservo el juicio por un tiempo, ¡pero los dedos cruzados funcionarán! Gracias a karel1980 por sugerir la solución.


¡Eliminar mi red de host no utilizada en la configuración de VirtualBox funcionó para mí! ¡Gracias!
Duque

1
Parece que esta configuración se eliminó a partir de 1.3.X - github.com/berkshelf/berkshelf/pull/856
Jeremy Hajek

5

Si vagrant upfalla, recomiendo lo siguiente:

  1. Arranque con modo gui : esto ayuda a ver si la imagen está rota (o, por ejemplo, lo que hace antes de que se inicie el aprovisionamiento), configure config.vm.boot_mode = :guien suVagrantfile
  2. Registro de depuración : ejecute el aprovisionamiento con depuración ,chef.log_level = :debug
  3. Vuelva a empaquetar la caja : a veces necesita instalar algo antes de que todo lo demás se ejecute, para arrancar el bootstrapper. Eso no es realmente posible, por lo que lo más fácil es iniciar un vm sin ningún aprovisionamiento, instalar lo que necesite y volver a empaquetar la caja ( vagrant box repackage foo, vagrant import fooy luego agregar foosu Vagrantfile)

Nota: el modo gui puede tener otros problemas, por ejemplo, para mí, el aprovisionamiento no funciona con vagabundo 0.7.5cuando gui está habilitado. Sin embargo, sigue siendo genial depurar la caja real.


2

Mi tipo de tarjeta de red se configuró originalmente en 82540EM. Lo cambié Am79C973y ahora Vagrant up funciona cada vez. He comenzado varias máquinas virtuales, incluso reinicié el host y aún funciona.

El comando es:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

Recuerde volver a empaquetar y volver a leer su caja a Vagrant.

Estoy ejecutando Debian Squeeze de 64 bits como host e invitados, usando VirtualBox 4.1.16 en una máquina Core i7-2600.


1

Si el módulo del kernel ya está instalado, intente iniciar la VM directamente con VirtualBox. Esto le mostrará cualquier error de inicio que se encuentre cuando se inicie la VM. Problemas como los errores del sistema de archivos impedirán que el demonio del servidor SSH funcione correctamente.


1

Tuve el mismo problema en osx (VirtualBox 4.1.0 y Vagrant 0.8.6), y para mí la única ayuda fue:

  1. iniciar sesión con: gui por login / pass: vagrant / vagrant
  2. modifique el archivo "/etc/rc.local" para incluir la línea "sh /etc/init.d/networking restart" justo antes de "salir 0".
  3. deshabilitar: gui
  4. recarga vagabunda

He encontrado esto en: https://github.com/mitchellh/vagrant/issues/391 thx mikhailov.


1

Yo tuve el mísmo problema. En mi caso, la emulación de 64 bits no estaba habilitada. Habilitar esta función en mi BIOS solucionó el problema.


1

Mi cuadro de invitado no se inicia correctamente debido a un problema de disco.

Forcé a la VM a cerrar a través de

VBoxManage controlvm poweroff

Luego modifiqué mi Vagrantfilepara incluir esta línea:

config.vm.boot_mode =: gui

A continuación, volví a correr

vagabundo

En la GUI que apareció, tuve que ejecutar la utilidad 'fijador de disco'.

Después de ejecutar la utilidad de disco, mi VM se inició correctamente y luego pude ejecutarla vagrant ssh.


1

Descomenté la parte en el Vagrantfile así:

  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

Lo guardé y luego lo hice

vagrant reload

y luego las cosas funcionaron bien. Sin embargo, no estoy seguro de por qué eso lo solucionó.


0

Tipo sudo /etc/init.d/vboxdrv setup. Ahora debería funcionar.


0

Mi problema fue que en

/etc/hosts

Tuve entrada

127.0.1.1 lucid32

donde como estaba el nombre de mi caja lucidtest, cambié la línea anterior a

127.0.1.1 lucidtest

Y funcionó.


0

Este mensaje sugiere que el servidor ssh no se está ejecutando en la VM. asegúrese de que esté instalado

sudo apt-get install openssh-server

y corriendo

ssh localhost

No debería dar un error.

Para excluir errores dentro de vagabundo, debe intentar ssh en el vm directamente al:

ssh vagrant @ localhost -p2222

(suponiendo usuario predeterminado y reenvío de puertos)


0

En Windows 7 ejecute

vagrant ssh

si obtienes algo como esto ...

`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

Entonces deberías usar algo como esto ...

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

Tenga en cuenta que estoy usando cygwin en mi ventana de Windows en lugar de Putty.


OP no usa Windows 7.
Tanner Faulkner

Gracias r.tanner.f - No se especificó ningún sistema operativo, esto me ayudó, espero que ayude a otros.
Artistan

No sé por qué te votaron negativamente, esto parece que podría ayudar a otras personas
Mark

0

Aquí hay otra posible razón para el error:

[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.

Se puede especificar un nombre de usuario en el archivo de configuración de esta manera:

config.ssh.username = "badusername"

Si ese nombre de usuario no existe o no se puede iniciar sesión por alguna razón, ni usted ni Vagrant podrán ingresar a SSH en la VM. Por lo tanto, Vagrant "no podrá conectarse", incluso si la VM está funcionando y funcionando correctamente.


0

Mi problema era que vagrant sshno haría nada en absoluto.

Eliminé ~/.ssh/configy el problema se resolvió. Copie el archivo en algún lugar o cámbiele el nombre si desea conservarlo.


en sistema local o remoto?
Jeremy Hajek

0

Al igual que con otros, utilicé la GUI (siempre tengo esto activado para evitar problemas como este)

config.vm.boot_mode = :gui

Luego usé el menú VirtualBox, ya que los comandos aquí no funcionaron. Máquina> Restablecer en el menú, luego ssh fue posible.


0

Apagué el vm en ejecución y creé una nueva basebox:

  1. Apague la máquina virtual que estoy tratando de exportar
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.