Vagrant ssh schlägt mit VirtualBox fehl


39

vagrant up schlägt fehl, wenn es um den ssh-Teil geht:

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.

Wenn ich anschließend versuche, eine Verbindung mit vagrant ssh oder vagrant reload oder ähnlichem herzustellen, erhalte ich Folgendes:

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.

Bitte helfen Sie! Ich bin wirklich ratlos.

Mit freundlichen Grüßen,

Luke

Antworten:


10

Ich habe dieses Problem bei meinem Setup festgestellt und es schließlich auf die Tatsache eingegrenzt, dass ich der lokalen Hosts-Datei einen Namen hinzugefügt habe. So hatte ich:

127.0.0.1 localhost myname myalias

Das, myaliaswas ich hinzugefügt hatte, wurde entfernt und es wurde in Ordnung gebootet. Vielen Dank an @saphirlazuli für den Hinweis, dass es sich um ein Netzwerk handelt.


Was ist die Problemumgehung, wenn ich Myalias beibehalten möchte?
Mickey Cheong

Wenn Sie einen Alias ​​verwenden möchten, besteht die Debian / Ubuntu-Methode darin, die erste Zeile als gerade zu 127.0.0.1 localhost127.0.1.1 foo bar baz
belassen

26

Ich hatte das gleiche Problem mit der Box, die auf der Vagrant-Website unter "Erste Schritte" angegeben ist. Die folgende Lösung bezieht sich auf die Box dieses Tutorials.

Ich finde hier eine Lösung: https://github.com/mitchellh/vagrant/issues/391

  1. Fügen Sie im VagrantFile den GUI-Modus hinzu: config.vm.boot_mode = :gui
  2. Lauf vagrant up
  3. logge dich in der Benutzeroberfläche mit dem Benutzer "vagrant" ein (password = "vagrant")
  4. Führen Sie sudo /etc/init.d/networking restartin der GUI in der /etc/network/interfacesDatei einen Abschnitt mit aus#VAGRANT-BEGIN [...]#VAGRANT-END
  5. laufen vagrant reloadauf der physischen Maschine

3
Das hat bei mir funktioniert, danke. Ich hatte Vagrant vorher laufen lassen, dann funktionierte es nicht mehr mit einer neuen Box. Irgendeine Idee, woran es liegt?
Andrew Vit

sudo /etc/init.d/networking restart funktioniert bei mir, danke!
Anatoly

2
Ich habe neu gestartet, aber in / etc / network / interfaces habe ich keinen Abschnitt mit # VAGRANT-BEGIN [...] # VAGRANT-END, keine Ahnung warum? Kann ich es manuell hinzufügen?
Sparrovv

1
Ich bekommeThe following settings shouldn't exist: boot_mode
Calin

1
In der neuesten Version musst du v.gui = true für die Provider-Konfiguration setzen
Calin

6

Dies ist ein zeitweiliges Problem für mich und scheint definitiv mit dem Networking zu tun zu haben. Bei den Vagrant GitHub-Ausgaben 391 und 455 habe ich weitere hilfreiche Informationen gefunden . Ich habe versucht, mein unbenutztes Host-Only-Netzwerk in den VirtualBox-Einstellungen zu löschen (wie empfohlen als mögliche Lösung in einem der GitHub-Probleme), was anscheinend nicht hilfreich war.

Das Starten im GUI-Modus (wie in einer vorherigen Antwort beschrieben) ist eine großartige Möglichkeit, Probleme zu debuggen / beheben. Ich habe festgestellt, dass die VM aus irgendeinem Grund beim Start keine IP-Adresse abrufen kann. Wenn Sie im GUI-Modus starten, sich dann anmelden (Vagrant / Vagrant) und sudo dhclientdas Gastbetriebssystem ausführen, wird die IP-Adresse abgerufen, und der Vagrant-Installationsvorgang wird erfolgreich abgeschlossen.

Immer noch auf der Suche nach einer dauerhaften Lösung.

Hoffe das hilft!

[BEARBEITET ZUM HINZUFÜGEN]: Ein hilfreicher Vorschlag wurde zum GitHub-Problem Nr. 455 hinzugefügt, bei dem die folgende Konfiguration zu Ihrer hinzugefügt wird Vagrantfile:

config.ssh.max_tries = 150

Dies funktioniert derzeit für mich und scheint sinnvoll zu sein, da das Problem mit einer Zeitüberschreitung zusammenhängt. Wenn Sie die Anzahl der Versuche erhöhen, sollte sich die Wahrscheinlichkeit erhöhen, dass der SSH-Prozess mit der Zeit erfolgreich verläuft. Da es sich in erster Linie um ein zeitweiliges Problem handelt, behalte ich mir das Urteil vor, aber wenn ich die Daumen drücke, funktioniert es! Vielen Dank an karel1980 für die Vorschläge.


Das Löschen meines nicht verwendeten Host-Only-Netzwerks in den VirtualBox-Einstellungen hat bei mir funktioniert! Danke!
Duke

1
Diese Einstellung wurde anscheinend ab 1.3.X - github.com/berkshelf/berkshelf/pull/856
Jeremy Hajek

5

Wenn dies vagrant upfehlschlägt, empfehle ich Folgendes:

  1. Boot mit GUI - Modus : das hilft , um zu sehen , ob das Bild unterbrochen ist (oder zum Beispiel , was es ist , bevor die Bereitstellung gestartet wird), Satz config.vm.boot_mode = :guiin IhremVagrantfile
  2. Debug-Protokollierung : Führen Sie die Bereitstellung mit Debug aus .chef.log_level = :debug
  3. Packen Sie die Box neu : Manchmal müssen Sie etwas installieren, bevor alles andere ausgeführt wird - um den Bootstrapper zu booten. Das ist nicht wirklich möglich. Am einfachsten ist es, ein VM ohne Provisioning zu booten, alles zu installieren, was Sie brauchen, und die Box neu zu packen ( vagrant box repackage foound dann vagrant import foound dann fooin Ihre zu packen Vagrantfile).

Hinweis: Der GUI-Modus kann andere Probleme haben, z. B. funktioniert bei mir keine Bereitstellung mit Vagrant, 0.7.5wenn GUI aktiviert ist. Es ist trotzdem großartig, die eigentliche Box zu debuggen.


2

Mein Netzwerkkartentyp war ursprünglich auf eingestellt 82540EM. Ich habe es in geändert Am79C973und jetzt funktioniert Vagrant up jedes Mal. Ich habe mehrere VMs gestartet, sogar den Host neu gestartet und es funktioniert immer noch.

Der Befehl lautet:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

Denken Sie daran, Ihre Schachtel neu zu verpacken und Vagrant vorzulegen.

Ich verwende Debian Squeeze 64-Bit als Host und Gast und verwende VirtualBox 4.1.16 auf einem Core i7-2600-Computer.


1

Wenn das Kernelmodul bereits installiert ist, starten Sie die VM direkt mit VirtualBox. Dies zeigt Ihnen alle Startfehler, die beim Booten der VM auftreten. Probleme wie Dateisystemfehler führen dazu, dass der SSH-Serverdämon nicht mehr ordnungsgemäß funktioniert.


1

Ich hatte das gleiche Problem unter osx (VirtualBox 4.1.0 und Vagrant 0.8.6) und für mich war die einzige Hilfe:

  1. einloggen mit: gui per login / pass: vagrant / vagrant
  2. Ändern Sie die Datei "/etc/rc.local" so, dass sie die Zeile "sh /etc/init.d/networking restart" kurz vor "exit 0" enthält.
  3. deaktiviere: gui
  4. Vagabund nachladen

Ich habe dies gefunden unter: https://github.com/mitchellh/vagrant/issues/391 thx mikhailov.


1

Ich hatte das gleiche Problem. In meinem Fall war die 64-Bit-Emulation nicht aktiviert. Das Aktivieren dieser Funktion in meinem BIOS hat das Problem behoben.


1

Meine Gästebox konnte aufgrund eines Festplattenproblems nicht ordnungsgemäß gestartet werden.

Ich habe die VM gezwungen, über zu schließen

VBoxManage controlvm poweroff

Dann habe ich meine so geändert Vagrantfile, dass sie diese Zeile enthält:

config.vm.boot_mode =: gui

Als nächstes rannte ich weiter

Vagabund

In der GUI, die auftauchte, musste ich das Dienstprogramm 'Disk Fixer' ausführen.

Nach dem Ausführen des Festplatten-Dienstprogramms wurde meine VM erfolgreich gestartet und ich konnte sie ausführen vagrant ssh.


1

Ich habe den Teil in der Vagrantdatei folgendermaßen dekommentiert:

  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

Ich habe es gespeichert und dann tat ich es

vagrant reload

und dann hat es gut geklappt. Ich bin mir nicht sicher, warum das das Problem behoben hat.


0

Typ sudo /etc/init.d/vboxdrv setup. Es sollte jetzt funktionieren.


0

Mein Problem war das in

/etc/hosts

Ich hatte Einlass

127.0.1.1 lucid32

Wo mein Boxname war lucidtest, habe ich die obige Zeile in geändert

127.0.1.1 lucidtest

und es hat funktioniert.


0

Diese Meldung weist darauf hin, dass der SSH-Server nicht auf der VM ausgeführt wird. Stellen Sie sicher, dass es installiert ist

sudo apt-get install openssh-server

und läuft

ssh localhost

sollte keinen Fehler geben.

Um Fehler in vagrant auszuschließen, sollten Sie ssh direkt in die vm einbinden:

ssh vagrant @ localhost -p2222

(Standardmäßige Benutzer- und Portweiterleitung vorausgesetzt)


0

Auf Windows 7 laufen

vagrant ssh

wenn du so etwas bekommst ...

`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

Dann solltest du so etwas benutzen ...

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

Beachten Sie, dass ich cygwin für meine Windows-Box anstelle von Putty verwende.


OP verwendet kein Windows 7.
Tanner Faulkner

Vielen Dank r.tanner.f - Es wurde kein Betriebssystem angegeben, dies hat mir geholfen, hoffentlich hilft es anderen.
Artistan

Ich weiß nicht, warum Sie abgelehnt wurden. Dies scheint anderen Menschen zu helfen
Markus,

0

Hier ist ein weiterer möglicher Grund für den Fehler:

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

Ein Benutzername kann in der Konfigurationsdatei wie folgt angegeben werden:

config.ssh.username = "badusername"

Wenn dieser Benutzername nicht existiert oder aus irgendeinem Grund nicht angemeldet werden kann, können weder Sie noch Vagrant eine SSH-Verbindung zur VM herstellen. Auf diese Weise kann Vagrant keine Verbindung herstellen, selbst wenn die VM tatsächlich ausgeführt wird und ordnungsgemäß funktioniert.


0

Mein Problem war, dass vagrant sshich überhaupt nichts tun würde.

Ich entfernte ~/.ssh/configund das Problem wurde gelöst. Kopieren Sie die Datei irgendwo hin oder benennen Sie sie um, wenn Sie sie behalten möchten.


auf lokalem oder entferntem System?
Jeremy Hajek

0

Wie bei anderen habe ich die GUI verwendet (ich habe diese immer aktiviert, um solche Probleme zu vermeiden).

config.vm.boot_mode = :gui

Ich habe dann das VirtualBox-Menü verwendet, da die Befehle hier nicht funktionierten. Maschine> Reset im Menü, dann war ssh dann möglich.


0

Ich habe den laufenden vm heruntergefahren und eine neue Basebox erstellt:

  1. VM herunterfahren Ich versuche zu exportieren
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.