SSH-Grundlagen für Vagrant-VMs

40853
rhodee

Ich baue eine Vagabundiermaschine (Ubuntu 12.04) mit den folgenden Anforderungen:

  • SSH-Zugriff über Vagrant auf einen Benutzer mit Sudo-Berechtigungen.

Ich habe öffentliche / private Schlüssel (via ssh-keygen) auf dem Host generiert und den öffentlichen Schlüssel in die authorized_keysDatei auf dem Gast verschoben . Und ich habe eine SSH ohne Kennwort versucht.

Ich vagrant sshschreibe ein paar Dinge mit passwortaktivierten SSH-Schlüsseln:

  • Ich muss meine Schlüsselwort auf dem Hostcomputer in SSH in die Guest-VM eingeben.
  • Jedes Mal, wenn ich den richtigen Suchbegriff eingebe, wird er nicht akzeptiert.

Welche Ergebnisse ergeben sich aus der folgenden Fehlermeldung:

SSH authentication failed! This is typically caused by the public/private keypair for the SSH user not being properly set on the guest VM. Please verify that the guest VM is setup with the proper public key, and that the private key path for Vagrant is setup properly as well. 

Dann habe ich versucht, ohne Passwort ssh.

vagrant ssh vagrant@127.0.0.1's password:  

??

Ich habe nie einen Vagabund-Benutzer eingerichtet! Es sollte so sein, user@hostnamewie ich es eingerichtet hatte und beim Start der VM in VirtualBox funktionieren kann.

Wie bekomme ich private SSH-Schlüssel, um ordnungsgemäß mit Vagrant zu arbeiten? Was ist auf dem Gastgeber zu tun, was auf dem Gast?

Aktualisieren

In VirtualBox ist die VM live, aber ich kann zusätzlich zu den Problemen mit Vagrant Console keine der folgenden Befehle ausführen vagrant ssh:

vagrant up vagrant halt

Der einzige Vagrant-Befehl, der funktioniert, ist vagrant suspend. Wenn ich es benutze, kann ich die Maschine tatsächlich über anhalten vagrant halt. Hier ist die Ausgabe:

$ vagrant halt [default] Attempting graceful shutdown of VM... SSH authentication failed! This is typically caused by the public/private keypair for the SSH user not being properly set on the guest VM. Please verify that the guest VM is setup with the proper public key, and that the private key path for Vagrant is setup properly as well. 
22

6 Antworten auf die Frage

21
Suchit Parikh

Ich füge diese Lösung für jeden hinzu, der zu diesem Thread kommt:

Öffnen Sie zuerst diese Datei auf dem Hostcomputer:

$ sudo vim ~/.vagrant.d/boxes/<yourbox>/include/_Vagrantfile 

Stellen Sie sicher, dass config.ssh.private_key_pathIhre private Schlüsseldatei festgelegt ist. Wenn nicht, aktualisieren Sie das

ssh in vagrant box mit voreingestelltem pwd

$ vagrant ssh (default pwd = ‘vagrant’] 

Einmal in der Box:

vagrant@lucid64:~$ sudo visudo -f .ssh/authorized_keys 

Fügen Sie dieser Datei Ihren öffentlichen Schlüssel hinzu, speichern Sie die Datei und schließen Sie das Feld

vagrant@lucid64:~$ exit 

Zurück zum lokalen Rechner

$ vagrant halt $ vagrant up 

Das hat bei mir funktioniert

Vielen Dank dafür - ich frage mich, was ist, wenn es möglich ist, als Benutzer, der sich von `vagrant` unterscheidet, in eine Box zu wechseln und das Schlüsselpaar pub / priv zu verwenden? Außerdem können Sie den Pfad auf den gewünschten privaten SSH-Schlüssel aus der Vagrantfile [wie so] einstellen (http://vagrantup.com/v1/docs/config/ssh/private_key_path.html)? rhodee vor 11 Jahren 0
Ich kann den Ordner 'include' nicht finden. Ich finde nur Ordner 0, dann Virtualbox, dann 4 Dateien - box.ovf, box-disk1.vmdk, metadata.json, Vagranfile. Irgendwelche Ideen, was dann zu tun ist? Darius.V vor 8 Jahren 2
3
Sam Critchley

Ich hatte das gleiche Problem, obwohl dies nicht auf SSH-Schlüsselprobleme zurückzuführen war. Beim Starten der Maschine funktionierte Virtualbox und brachte den Gast in Ordnung. Ich konnte SSH selbst in die Maschine einbauen und vagrant ssharbeitete, obwohl es mich nach einem Passwort fragte. Ich habe mich angemeldet und in /var/log/auth.log auf dem Gast Folgendes gefunden:

Feb 13 10:14:34 spaaza-dev sshd[1468]: Accepted password for vagrant from 192.168.50.1 port 61816 ssh2 Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session opened for user vagrant by (uid=0) Feb 13 10:14:34 spaaza-dev sshd[1636]: Received disconnect from 192.168.50.1: 11: disconnected by user Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session closed for user vagrant Feb 13 10:16:44 spaaza-dev sshd[1764]: Authentication refused: bad ownership or modes for directory /home/vagrant 

Ich habe nach Berechtigungen für / home / vagrant gesucht:

drwxrwxrwx 6 vagrant vagrant 4096 Feb 13 10:15 vagrant 

Nicht gut, etwas anderes, das ich getan hatte, hatte versehentlich die Berechtigungen des Verzeichnisses / home / vagrant geändert. Folgendes Problem wurde behoben:

# chmod 755 vagrant  drwxr-xr-x 6 vagrant vagrant 4096 Feb 13 10:15 vagrant 

Danach habe ich die Maschine heruntergefahren, neu gestartet und Vagrant hat seine Sache gut gemacht. :-)

Guter Tipp. Ich musste auch `chmod -R 755 / home / vagrant / .ssh` machen wisbucky vor 7 Jahren 0
2
Gaurav Agarwal

Try copying the vagrant insecure public key into the file .ssh/authorized_keys into the guest box.

Hope this resolves your ssh issue.

If you want to make it secure then you can do so by copying your own .ssh/id_rsa.pub into the aforementioned file. And setting the

config.ssh.private_key_path = '~/.ssh/id_rsa'

in your Vagrantfile.

2
Denn

Für alle, die dieses Problem haben. Ich habe lange gebraucht, um das Problem zu beheben. (Dennoch ist das Update einfach!) Laut Vagrant-Dokumentation gibt es ein Standardkennwort für "Vagabund" -Nutzer, das "Vagabund" ohne die einzelnen Anführungszeichen ist. Sie können auf der offiziellen Website http://docs.vagrantup.com/v2/boxes/base.html mehr darüber lesen

2
Flimm

Ich hatte ähnliche Probleme. Irgendwann habe ich es gelöst durch:

  • Stellen Sie sicher, dass sowohl Vagrant als auch Virtualbox auf dem neuesten Stand sind
  • Stellen Sie sicher, dass VirtualBox Guest Additions auf dem neuesten Stand ist, indem Sie das vagrant-vbguestPlugin installieren :GitHub RubyGems

    vagrant plugin install vagrant-vbguest 
0
Dibyajyoti Nayak

Befolgen Sie die Schritte, um das Problem in Mac OS High Sierra zu beheben: -

  1. Ich verwende Vagrant 5.X Version
  2. Laden Sie zunächst die virtuelle Box herunter und installieren Sie sie nicht.
  3. Gehen Sie zu den Systemeinstellungen -> Datenschutz und klicken Sie auf "Download durch Amerika zulassen".
  4. Sperren Sie die obigen Änderungen und installieren Sie die virtuelle Box.
  5. Sie erhalten eine erfolgreich abgeschlossene Installationsnachricht für Ihre virtuelle Box.
  6. Gehen Sie jetzt zum Terminaltyp vagrant up --provision
  7. Wenn Sie welche haben, werden Skripts gestartet und die virtuelle Box für Sie heruntergeladen. 8.Sie erhalten die Nachricht "Fertig"

  8. Stellen Sie sicher, dass die virtuelle Box korrekt installiert ist, und führen Sie nur den Befehl vagrant aus. Wenn das Problem auftritt, deinstallieren Sie die virtuelle Box, indem Sie das Deinstallationsskript ausführen, das im Paket enthalten ist, und versuchen Sie es erneut.