Vagrant ssh Authentifizierungsfehler

147

Das Problem mit der SSH-Authentifizierung:

==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Connection timeout. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...

Ich kann Ctrl+Caus der Authentifizierungsschleife heraus und dann erfolgreich manuell ssh.

Ich habe die folgenden Schritte für die Gastbox ausgeführt:

  • Aktiviert Remote Loginfür All Users.

  • Erstellt das ~/.sshVerzeichnis mit 0700Berechtigungen.

  • Erstellt die ~/.ssh/authorized_keysDatei mit 0600Berechtigungen.

  • Fügte diesen öffentlichen Schlüssel in ein~/.ssh/authorized_keys

Ich habe auch versucht, ein privates (nur Host) Netzwerk anstelle des öffentlichen (überbrückten) Netzwerks zu verwenden, indem ich diese Zeile in der Vagrant-Datei verwendet habe:

config.vm.network "private_network", ip: "172.16.177.7"

Ich bekomme die gleiche Ausgabe (außer Adapter 2: hostonly), kann dann aber nicht manuell ssh.

Ich habe es auch versucht config.vm.network "private_network", ip: "10.0.0.100".

Ich habe auch versucht, config.ssh.passwordin der Vagrant-Datei zu setzen. Dies gibt SSH auth method: passwordzwar aus, authentifiziert sich aber immer noch nicht.

Und ich habe auch versucht, die Box neu aufzubauen und alle oben genannten Punkte erneut zu überprüfen.

Es sieht so aus, als ob andere mit dieser Konfiguration erfolgreich waren , also muss etwas falsch sein.

Ich habe diesen Thread gefunden und die GUI aktiviert, aber das hilft nicht.

ic3b3rg
quelle

Antworten:

1

Stellen Sie sicher, dass Ihre erste Netzwerkschnittstelle NAT ist. Die andere zweite Netzwerkschnittstelle kann beliebig sein, wenn Sie eine Box erstellen. Vergessen Sie nicht den Vagrant-Nutzer, wie im Google-Thread beschrieben.

Viel Glück.

user3509054
quelle
170

Für allgemeine Informationen: Standardmäßig können Sie ssh-connect einfach verwenden

Benutzer: vagrantPasswort:vagrant

https://www.vagrantup.com/docs/boxes/base.html#quot-vagrant-quot-user

Versuchen Sie zunächst: zu sehen, welcher Vagabund insecure_private_keyin Ihrer Maschinenkonfiguration enthalten ist

$ vagrant ssh-config

Beispiel:

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/konst/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

http://docs.vagrantup.com/v2/cli/ssh_config.html

Zweitens: Ändern Sie den Inhalt der Datei insecure_private_keymit dem Inhalt des privaten Schlüssels Ihres persönlichen Systems

Oder verwenden Sie: Fügen Sie es der Vagrant-Datei hinzu:

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end
  1. config.ssh.private_key_path ist Ihr lokaler privater Schlüssel
  2. Ihr privater Schlüssel muss dem lokalen SSH-Agenten zur Verfügung stehen. Sie können mit überprüfen ssh-add -L. Wenn es nicht aufgeführt ist, fügen Sie es mit hinzussh-add ~/.ssh/id_rsa
  3. Vergessen Sie nicht, Ihren öffentlichen Schlüssel ~/.ssh/authorized_keysauf der Vagrant-VM hinzuzufügen . Sie können dies durch Kopieren und Einfügen oder mit einem Tool wie ssh-copy-id (Benutzer: rootKennwort: vagrantPort: 2222) tun.ssh-copy-id '-p 2222 [email protected]'

Wenn es immer noch nicht funktioniert, versuchen Sie Folgendes:

  1. insecure_private_keyDatei entfernen vonc:\Users\USERNAME\.vagrant.d\insecure_private_key

  2. Ausführen vagrant up(Vagrant generiert eine neue insecure_private_keyDatei)

In anderen Fällen ist es hilfreich, einfach forward_agent festzulegen in Vagrantfile :

Vagrant::Config.run do |config|
   config.ssh.forward_agent = true
end

Nützlich:

Die Konfiguration von git kann mit git-scm.com erfolgen

Nach dem Einrichten dieses Programms und dem Erstellen des privaten Schlüssels des persönlichen Systems befindet sich dieser in Ihrem Profilpfad:c:\users\USERNAME\.ssh\id_rsa.pub

PS: Schliesslich - schlagen Sie vor, dass Sie sich Ubuntu unter Windows 10 ansehen

shilovk
quelle
4
in meinem Fall war es ein Problem, weil config.ssh.private_key_path = "~/.ssh/id_rsa"diese Zeile entfernt werden musste, damit die Bereitstellung funktioniert
holms
All dies funktionierte, aber ich musste auch meinen Eintrag in bekannten Hosts entfernen. Ich hatte Probleme beim Verschieben von Standorten und beim Anmelden.
Pumphouse
@shilovk +1 Danke, danke, vielen Dank. Das "Second do" hat es geschafft. Nochmals vielen Dank Mann.
Whitesiroi
Dieser zeigte mir die richtige Richtung, in meinem Fall musste ich nur die Datei .vagrant / machine / default / virtualbox / private_key löschen und nach dem Ausführen von vagrant die Datei durch die richtige ersetzen - ich würde die sichern Datei nur für den Fall
andrux
Der erste und wichtigste Schritt besteht darin, Ihre BIOS-Einstellungen zu überprüfen und sicherzustellen, dass die Virtualisierung aktiviert ist.
Bahman.A
83

Keines der oben genannten hat bei mir funktioniert. Irgendwie wurde der Box der falsche öffentliche Schlüssel in der vagrant user authorised_keys- Datei hinzugefügt .

Wenn Sie immer noch mit dem vagabundierenden Passwort (Passwort ist vagabundierend) auf der Box ssh können, dh

ssh vagrant@localhost -p 2222

Kopieren Sie dann den Inhalt des öffentlichen Schlüssels von https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub mit dem folgenden Befehl in die Datei authorised_keys

echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" > .ssh/authorized_keys

Wenn Sie fertig sind, beenden Sie die VM und versuchen Sie es erneut mit vagrant ssh. Es sollte jetzt funktionieren.

Bizmate
quelle
4
Führen Sie vagrant reloadnach dem Aktualisieren der Datei authorized_keys aus. Vagrant erkennt den unsicheren Schlüssel automatisch und generiert ihn für Sie neu. Sollte danach funktionieren.
ProfileTwist
47

Wenn dieses Problem in Vagrant 1.8.5 auftritt, lesen Sie diesen Thread auf Github:

https://github.com/mitchellh/vagrant/issues/7610

Es ist im Wesentlichen durch ein Berechtigungsproblem verursacht, die Problemumgehung ist gerecht

vagrant ssh 
password: vagrant 
chmod 0600 ~/.ssh/authorized_keys
exit

dann

vagrant reload 

Zu Ihrer Information: Dieses Problem betrifft nur CentOS, Ubuntu funktioniert einwandfrei.

Lei Xu
quelle
Angenommen, ich habe 5 Maschinen für eine Vagabunddatei. Jedes Mal, wenn ich es erneut ausführe, muss ich es für jede Maschine tun. Ich behebe dies dauerhaft für gegebenes Vagabund-Setup mit Centos?
Pol
Musste nur vagrant auf Version 1.8.6 aktualisieren, um 1.8.5 zu haben, wo Fehler vorhanden waren
Pol
42

Führen Sie die folgenden Befehle in Gastcomputer / VM aus:

wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chown -R vagrant:vagrant ~/.ssh

Dann machen Sie einen vagabundierenden Halt. Dadurch werden Ihre privaten Schlüssel entfernt und neu generiert.

(Bei diesen Schritten wird davon ausgegangen, dass Sie die Verzeichnisse ~ / .ssh / und ~ / .ssh / autorisierte_keys bereits erstellt haben oder bereits in Ihrem Basisordner haben.)

Raja Ehtesham
quelle
26

Nach meiner Erfahrung war dies ein überraschend häufiges Problem bei neuen Vagabundmaschinen. Der bei weitem einfachste Weg, dies zu lösen, bestand darin, die erforderlichen SSH-Schlüssel manuell auf dem Client zu erstellen und dann den privaten Schlüssel auf dem Host zu verwenden, anstatt die Konfiguration selbst zu ändern.

  1. Melden Sie sich bei vagrant machine an: vagrant sshVerwenden Sie das Standardkennwort vagrant.
  2. Erstellen Sie SSH-Schlüssel: Zum Beispiel ssh-keygen -t rsa -b 4096 -C "vagrant"( wie in der entsprechenden Anleitung von GitHub empfohlen ).
  3. Benennen Sie die Datei mit dem öffentlichen Schlüssel (standardmäßig id_rsa.pub) um und überschreiben Sie die alte : mv .ssh/id_rsa.pub .ssh/authorized_keys.
  4. Laden Sie den SSH-Dienst bei Bedarf neu : sudo service ssh reload.
  5. Kopieren Sie die private Schlüsseldatei (standardmäßig id_rsa) auf den Host-Computer: Verwenden Sie beispielsweise eine feine Kombination aus Katze und Zwischenablage cat .ssh/id_rsa, malen und kopieren Sie (es müssen bessere Möglichkeiten existieren, erfinden Sie eine!).
  6. Abmelden von der Vagabundmaschine : logout.
  7. Suchen Sie den aktuellen privaten Schlüssel, der von vagrant verwendet wird, indem Sie sich seine Konfiguration vagrant ssh-configansehen : (Suchen Sie beispielsweise nach ÌdentityFile "/[...‹/private_key".
  8. Ersetzen Sie den aktuellen privaten Schlüssel durch den Schlüssel, den Sie auf dem Hostcomputer erstellt haben: Fügen Sie ihn beispielsweise nano /[...]/private_keyaus der Zwischenablage ein, wenn alles andere fehlschlägt. ( Beachten Sie jedoch, dass Sie Ihren Pfad besser selbst konfigurieren sollten, wenn Ihr private_key nicht projektspezifisch ist, sondern von mehreren Vagrant-Computern gemeinsam genutzt wird, um andere perfekt funktionierende Maschinen nicht config.ssh.private_key_path = "path/to/private_key"zu beschädigen. Das Ändern des Pfads ist so einfach wie das Hinzufügen einer Zeile zur Vagrant-Datei. ) Wenn Sie einen von PuPHPet generierten Computer verwenden, können Sie Ihren privaten Schlüssel in einer Datei speichern puphpet/files/dot/ssh/id_rsaund er wird automatisch zur ssh-Konfiguration von Vagrantfile hinzugefügt.
  9. Testen Sie das Setup: vagrant sshsollte jetzt funktionieren.

Sollte dies der Fall sein, gratulieren Sie sich selbst, logoutlaufen Sie vagrant provisionbei Bedarf und fahren Sie mit der sinnvollen Aufgabe fort.

Wenn Sie immer noch auf Probleme stoßen, kann es nützlich sein, dem Befehl ssh ein ausführliches Flag hinzuzufügen, um das Debuggen zu vereinfachen. Sie können dies (oder eine andere Option) nach einem Doppelstrich übergeben. Zum Beispiel tippen vagrant ssh -- -v. Fühlen Sie sich frei, so viele Vs hinzuzufügen, wie Sie benötigen. Jedes gibt Ihnen weitere Informationen.

Sankari
quelle
Diese Antwort hat mir geholfen. Nur um meine Erfahrungen zu teilen: Irgendwie (möglicherweise während der Installation von Capistrano, aber das wird nicht bestätigt) wurde meine Datei "authorized_key" auf meiner Gast-VM gelöscht. Das Wiederherstellen mit diesen Schritten hat funktioniert und ich kann jetzt ohne Passwortabfrage ssh. Vielen Dank.
Martin Joiner
Nachdem ich beide Schlüssel (öffentlich / privat) vom Host-Computer entfernt hatte, konnte ich sie mit diesem Prozess wiederholen und auflösen
vrwired
Die Verwendung von Git beschleunigt die Übertragung dieses Dateiinhalts.
lloan
1
Dieser funktionierte für mich, nachdem alles andere, was ich versucht hatte, fehlgeschlagen war. Vielen Dank!
Nikolas
Das hat bei mir funktioniert. Das einzige, was ich anders gemacht habe, war, mich ssh [email protected] -p 22 (password: vagrant)bei VM anzumelden, da vagrant sshes für mich nicht funktionierte. 10.0.0.0ist die private IP-Adresse, die ich in meinem festgelegt habe vagrantfile.
Turrican_34
11

Dies kann auch passieren, wenn Sie versuchen, Ihre VM zu zwingen, standardmäßig einen Root-Benutzer für SSH zu verwenden.

Beispielsweise kann eine Konfiguration wie diese in Ihrer Vagrant-Datei diesen Fehler verursachen:

config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'

Lösung: Kommentieren Sie diese Zeilen aus und versuchen Sie es erneut!

Brad Parks
quelle
2
für mich hat nur das Setzen von config.ssh.username = "vagrant" und config.ssh.password = "vagrant" den Trick gemacht
psychok7
8

Problem Ich habe die SSH-Authentifizierungsfehler auf einer von mir bereitgestellten Box erhalten. Das Original funktionierte einwandfrei.

Das Problem für mich war, dass mir ein privater Schlüssel fehlte .vagrant/machines/default/virtualbox/private_key. Ich habe den privaten Schlüssel von der gleichen relativen Position aus der Originalverpackung und Viola kopiert!

GP89
quelle
Ich würde hinzufügen, dass wir als guter Entwickler die .vagrantDateien in Git einchecken ... und als solches git checkoutspart ein kurzer Teil dieser Datei den Tag!
Ian Vaughan
8

Ich habe einen Weg gefunden, um das Durcheinander mit den Schlüsseln unter Win 8.2 zu umgehen, bei dem ich mit keiner der hier genannten Methoden Erfolg hatte. Es kann interessant sein, dass genau dieselbe Kombination aus VirtualBox, Vagrant und der Box unter Win 7 Ultimate problemlos ausgeführt werden kann.

Ich habe zur Kennwortauthentifizierung gewechselt, indem ich die folgenden Befehle in Vagrantfile hinzugefügt habe:

config.ssh.password = "vagrant"
config.ssh.insert_key = false

Beachten Sie, dass ich nicht sicher bin, ob dies die einzigen erforderlichen Änderungen sind, da ich dies bereits getan habe:

  1. Ich habe ein neues RSA-Schlüsselpaar generiert und die Datei authorized_keys entsprechend geändert (alle in der virtuellen Maschine, siehe die obigen Vorschläge und anderswo).

  2. Ich habe den privaten Schlüssel in dasselbe Verzeichnis kopiert, in dem sich Vagrantfile befindet, und hinzugefügt

     config.ssh.private_key_path = "./id_rsa"
    

Aber ich glaube, dass diese Änderungen irrelevant waren. Ich habe viel Zeit damit verbracht, es zu versuchen, also habe ich die Arbeitskonfiguration aus offensichtlichen Gründen nicht geändert :)

Michael
quelle
5

Sie können den Vagabund nicht hochlaufen lassen, weil er stecken bleibt und eine Zeitüberschreitung auftritt?

Ich hatte kürzlich einen "Water in Laptop-Vorfall" und musste auf einen neuen migrieren (übrigens auf einem MAC).

Ich habe alle meine Projekte erfolgreich neben dem Projekt gestartet, bei dem Vagrant verwendet wurde.

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 8000 (guest) => 8877 (host) (adapter 1)
    default: 8001 (guest) => 8878 (host) (adapter 1)
    default: 8080 (guest) => 7777 (host) (adapter 1)
    default: 5432 (guest) => 2345 (host) (adapter 1)
    default: 5000 (guest) => 8855 (host) (adapter 1)
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

Es konnte sich nicht authentifizieren, versuchte es immer wieder und gab schließlich auf.

** So habe ich es in 3 Schritten wieder in Form gebracht: **

1 - Finden Sie die von Vagrant verwendete IdentityFile: $ vagrant ssh-config

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/ned/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

2 - Überprüfen Sie den öffentlichen Schlüssel in der IdentityFile: $ ssh-keygen -y -f /Users/<user-name>/.vagrant.d/insecure_private_key Ersetzen Sie ihn '<user-name>'durch Ihren Benutzer. Es wird ungefähr so ​​aussehen:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==

3 - Melden Sie sich mit dem Passwort "vagrant" am $ vagrant an: $ ssh -p 2222 -o UserKnownHostsFile=/dev/null [email protected]

The authenticity of host '[127.0.0.1]:2222 ([127.0.0.1]:2222)' can't be established.
RSA key fingerprint is dc:48:73:c3:18:e4:9d:34:a2:7d:4b:20:6a:e7:3d:3e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts.
[email protected]'s password: vagrant
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)
...

4 - Fügen Sie den öffentlichen Schlüssel zur Datei authorized_keys hinzu. $echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAA...9gE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==" > /home/vagrant/.ssh/authorized_keys ssh-rsa

5 - Verlassen Sie (crtl + d) und stoppen Sie den Vagabundbehälter und bringen Sie ihn wieder hoch. $ vagrant halt $vagrant up

Hoffentlich haben Sie jetzt Ihre Arme in der Luft ...

Ich habe dies mit nur einer kleinen Änderung aus dem Artikel von Ned Batchelders erhalten - Ned, du bist ein Champion !!

Anas
quelle
Sie, Sir, sind ein Genie, oder Ned Batchelders. So oder so, es hat mein Problem behoben!
Adsy2010
4

Für mich wurde dies behoben, indem die Berechtigungen für den Ordner .ssh im vagrant home directort (dh "~ vagrant / .ssh") geändert wurden. Ich glaube, ich habe die Berechtigungen durcheinander gebracht, als ich SSH-Schlüssel für meine Anwendung eingerichtet habe.

Es scheint, dass die Datei 'authorized_keys' nur für 'vagrant' Benutzer 'rw' sein darf, also "chmod 600 autorisierte_keys"; Gleiches gilt für das Verzeichnis selbst und sein übergeordnetes Verzeichnis:

so:

chmod 600 authorized_keys
chmod 700 .
chmod 700 ..

Erst nachdem ich all diese Berechtigungen wiederhergestellt hatte, begann vagrant ssh wieder zu arbeiten.

Ich denke, das hat etwas mit der SSH-Sicherheit zu tun. Es lehnt es ab, Zertifikate zu erkennen, wenn sie über den aktuellen Benutzer hinaus zugänglich sind. Daher werden vagabundierende Anmeldeversuche abgelehnt.

Robert
quelle
Ich kann mich manchmal nicht ändern, indem ich nur sudo chmod 600 autorisierte_Tasten ausführe, aber es bleibt unverändert. Ich denke, das hat etwas zu tun, das auch unter Windows geteilt wird.
Darius.V
Manchmal passiert dies, wenn sich das Verzeichnis beispielsweise auf einer Freigabe befindet/vagrant/...
Robert
1
Zusätzlich zu meiner Antwort möchte ich für diese Antwort stimmen. Auf einem anderen Computer von mir war es genau dieses Problem - falscher Besitzer des Verzeichnisses /home/vagrant/.ssh. Es war "root: root", muss aber "vagrant: vagrant" sein
Michael
4

Wenn Sie das Standard-SSH-Setup in Ihrer VagrantFile verwenden und nach dem erneuten Zuordnen Ihrer VM-Box aufgrund eines Absturzes SSH-Authentifizierungsfehler feststellen, versuchen Sie, den öffentlichen Schlüssel in Ihrem Vagrant-Computer zu ersetzen.

Vagrant ersetzt aus Sicherheitsgründen bei jedem Abmelden den öffentlichen Schlüssel, der mit einem unsicheren privaten Schlüsselpaar verknüpft ist. Wenn Sie Ihren Computer nicht ordnungsgemäß heruntergefahren haben, kann das öffentliche / private Schlüsselpaar nicht mehr synchron sein, was zu einem SSH-Authentifizierungsfehler führt.

Um dieses Problem zu beheben, laden Sie einfach den aktuellen unsicheren privaten Schlüssel und kopieren Sie das öffentliche Schlüsselpaar in die Datei "authorized_keys" Ihrer VM.

thk
quelle
3

Dies könnte die letzte Antwort in der Liste sein, aber dies hat bei mir funktioniert und ich habe diese Antwort nirgendwo gefunden. Ich habe sie nach 2 Tagen Recherche selbst gefunden. Versuchen Sie es also besser, wenn bis jetzt nichts anderes für Sie funktioniert hat.

In meinem Fall kam das Problem von meiner VirtualBox. Ich weiß nicht, aus welchem ​​Grund eine Option deaktiviert wurde und hätte aktiviert werden sollen.

Geben Sie hier die Bildbeschreibung ein

Wie Sie in der Abbildung sehen können, gab es einige Netzwerkprobleme mit meiner VirtualBox. Um dieses Problem zu beheben, musste ich meinen Computer auswählen, auf Einstellungen, Registerkarte Netzwerk klicken und danach sicherstellen, dass die Option Kabel verbunden ist wurde ausgewählt. In meinem Fall wurde diese Option nicht ausgewählt und ich bin in diesem Schritt fehlgeschlagen:

default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key

Zuerst dachte ich, dass der Port bereits verwendet wird, danach habe ich Vagrant neu installiert und auch andere Dinge ausprobiert, aber keiner von ihnen hat für mich funktioniert.

paulalexandru
quelle
3

Das ist mir schon mehrmals passiert und ich habe es so gelöst:

  1. Überprüfen Sie, ob Ihre Vagrant-Datei über den richtigen Pfad für private Schlüssel verfügt:

    config.ssh.private_key_path = "/home/razvan/.ssh/id_rsa"

  2. Führen Sie den Befehl> vagrant ssh in einem Linux-Terminal aus

  3. Gehen Sie auf Ihrer Vagabundmaschine zu

    cd /home/vagrant/.ssh

und überprüfen Sie, ob der SSH-Schlüssel in der Datei "authorized_keys" mit dem auf Ihrem lokalen Computer in ~ / .ssh / id_rsa.pub übereinstimmt. Wenn nicht, ersetzen Sie den von Ihrem Vagrant autorisierten Schlüssel durch den auf Ihrem lokalen Computer in ~ / .ssh / id_rsa.pub.

  1. Vagrant neu laden:

    Vagabund nachladen

Hoffe das hilft jemand anderem. Prost!

Razvan
quelle
Ich habe keinen ~ / .ssh Ordner, was soll ich dann tun?
Ashish Karpe
@AshishKarpe erstellen Sie es mit 700 Berechtigungen und erstellen Sie eine authorized_keysDatei mit 600 Berechtigungen.
Hogan
3

1. Suchen Sie den privaten Schlüssel auf dem Host:

vagrant ssh-config
#

Ausgabe:

Host default
  ...
  Port 2222
  ...
  IdentityFile /home/me/.vagrant.d/[...]/virtualbox/vagrant_private_key
  ...

2. Speichern Sie den privaten Schlüsselpfad und die Portnummer in Variablen:

Verwenden Sie diese beiden Befehle mit der Ausgabe von oben:

pk="/home/me/.vagrant.d/.../virtualbox/vagrant_private_key"
port=2222
#

3. Generieren Sie einen öffentlichen Schlüssel und laden Sie ihn auf den Gastcomputer hoch:

Kopie / Pasta, keine Änderungen erforderlich:

ssh-keygen -y -f $pk > authorized_keys
scp -P $port authorized_keys vagrant@localhost:~/.ssh/
vagrant ssh -c "chmod 600 ~/.ssh/authorized_keys"
rm authorized_keys
#
Nabil Kadimi
quelle
1
Ich hatte das beschriebene Problem so oft, normalerweise nach dem Verpacken und anschließenden Wiederherstellen der Vagrant-Box. Was für mich funktioniert hat, ist das Hinzufügen der folgenden Konfiguration, um Vagrant anzuweisen, seinen öffentlichen Schlüssel in die VM einzufügen: config.ssh.username = "vagrant"; config.ssh.password = "vagrant"; config.ssh.insert_key = trueDiesmal hat die obige Konfiguration jedoch nichts bewirkt. Ich weiß nicht wirklich warum, habe versucht zu debuggen, warum der Schlüssel nicht ohne Glück eingefügt wird. Also habe ich auf Ihre Lösung zurückgegriffen und voila! Es klappt!
stz184
2

Mac-Lösung:

  1. Lokaler ssh id_rsa-Schlüssel zum vagabundierenden privaten Schlüssel hinzugefügt

    vi /Users//.vagrant/machines/default/virtualbox/private_key

    /Users//.ssh/id_rsa

  2. kopierte öffentlichen Schlüssel /Users//.ssh/id_rsa.pub auf vagrant box autorisierte_schlüssel

ssh vagrant@localhost -p 2222 (Passwort: Landstreicher) ls -la cd .ssh

  1. chmod 0600 ~/.ssh/authorized_keys

  2. vagrant reload

Problem gelöst.

Dank an

Parag Lohiya
quelle
1

konnte auch nicht darüber hinaus kommen:

Standard: SSH-Authentifizierungsmethode: privater Schlüssel

Als ich die VirtualBox-Benutzeroberfläche verwendete, wurde mir mitgeteilt, dass ein Betriebssystemprozessor nicht übereinstimmt.

Um weiter voranzukommen, musste ich in den BIOS-Einstellungen kontraintuitiv vorgehen:

Deaktivieren: Virtualisierung

Aktivieren: VT-X

Versuchen Sie, diese Einstellung in Ihrem BIOS umzuschalten.

Onshop
quelle
1

Zuerst sollten Sie die automatisch generierte Datei unsicherer_privater_schlüssel entfernen und diese Datei dann durch Eingabe neu generieren

vagrant ssh-config

dann

vagrant halt
vagrant up

Es sollte funktionieren

Ahmet Karakaya
quelle
Ich habe es versucht, aber es wird immer noch ein Fehler angezeigt, weil ich Ubuntu Virtual Box VM verwende, in der ich Vagrant versuche.
Ashish Karpe
#vagrant up Maschine 'default' mit 'virtualbox'-Provider hochfahren ... ==> default: Alle zuvor festgelegten weitergeleiteten Ports löschen ... ==> default: Alle zuvor festgelegten Netzwerkschnittstellen löschen ... ==> default: Vorbereiten von Netzwerkschnittstellen basierend auf der Konfiguration ... Standard: Adapter 1: nat ==> Standard: Weiterleiten von Ports ... Standard: 22 (Gast) => 2222 (Host) (Adapter 1) ==> Standard: Starten der VM .. . ==> Standard: Warten auf den Start des Computers. Dies kann einige Minuten dauern ... Standard: SSH-Adresse: 127.0.0.1:2222 Standard: SSH-Benutzername: Vagrant Standard: SSH-Authentifizierungsmethode: privater Schlüssel
Ashish Karpe
1

Ich habe das Problem folgendermaßen gelöst. 1. Erstellen Sie einen neuen SSH-Schlüssel mit Git Bash

$ ssh-keygen -t rsa -b 4096 -C "vagrant@localhost"
# Creates a new ssh key, using the provided email as a label
Generating public/private rsa key pair.
  1. Wenn Sie aufgefordert werden, eine Datei einzugeben, in der der Schlüssel gespeichert werden soll, drücken Sie die Eingabetaste. Dies akzeptiert den Standardspeicherort der Datei.

    Geben Sie eine Datei ein, in der der Schlüssel gespeichert werden soll (/Users/[you‹/.ssh/id_rsa): [Drücken Sie die Eingabetaste]

  2. Geben Sie an der Eingabeaufforderung eine sichere Passphrase ein. Sie können leer lassen und die Eingabetaste drücken, wenn Sie keine Passphrase benötigen.

    Geben Sie eine Datei ein, in der der Schlüssel gespeichert werden soll (/Users/[you‹/.ssh/id_rsa): [Drücken Sie die Eingabetaste]

  3. Geben Sie den folgenden Befehl ein, um eine Verbindung zu Ihrer Vagrant-VM herzustellen

    ssh vagrant @ localhost -p 2222

Wenn Sie die folgende Nachricht erhalten, geben Sie "Ja" ein und drücken Sie die Eingabetaste.

The authenticity of host 'github.com (192.30.252.1)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
  1. So stellen Sie jetzt einen SSH-Verbindungstyp her: $ vagrant ssh

  2. Kopieren Sie den öffentlichen Hostschlüssel in die Datei authorized_keys in Vagrant VM. Wechseln Sie dazu in den Ordner "Users / [you] /. Ssh" und kopieren Sie den Inhalt in die Datei "id_rsa.pub" auf dem Hostcomputer und in die Datei "~ / .ssh / autorisierte_keys" in Vagrant VM.

  3. Ändern Sie die Berechtigung für den SSH-Ordner und die Datei "authorized_keys" in Vagrant VM
  4. Starten Sie vagrant neu mit: $ vagrant reload
Krishna
quelle
0

Ich habe die Maschine dann gestartet:

vagrant ssh-config

Ich habe folgendes bekommen:

Host default HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa IdentityFile /Users/my-user-name/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL

Dann bin ich gerannt

cat ~/.ssh/id_rsa > /Users/my-user-name/Documents/PHP-Projects/my-php-project/puphpet/files/dot/ssh/id_rsa

Maschine von hier an gebootet

  • El Capitan 10.11.1 Beta (15B38b)
  • Virtual Box 5.0.8 r103449
  • Vagrant 1.7.4
Radek
quelle
0

Zwischen all den Antworten hier gibt es viele gute Dinge zu versuchen. Der Vollständigkeit halber, wenn Sie

ssh vagrant@localhost -p 2222

Wie @Bizmate vorschlägt und es fehlschlägt, stellen Sie sicher, dass Sie haben

AllowUsers vagrant

in der /etc/ssh/sshd_configIhrer Gast- / Vagabundmaschine.

Don Smith
quelle
0

Ich verwende Vagrant mit einem Puphpet-Setup ab Mai 2015 und hatte dieses Problem. Es scheint, dass die generierte Konfiguration das Verhalten von Vagrant 1.7.4 (oder vielleicht etwas früher?) Beim Regenerieren von SSH-Schlüsseln nicht behandelt hat, wenn ein unsicherer Schlüssel erkannt wird.

Ich habe es gelöst, indem ich Folgendes in meine von Puphpet generierte Vagrant-Datei (lokales Setup) in der Klausel "if File.file? (CustomKey)" eingefügt habe:

config.ssh.insert_key = false

Referenz Commit

Elias Kouskoumvekakis
quelle
0

Dies sind die korrekten Schritte, die ich zur Behebung dieses unten aufgeführten Problems ausgeführt habe, als der Befehl zum Ausführen eines vagabundierenden Befehls ausgeführt wurde.

Dies sind die Schritte, denen ich gefolgt bin

  1. Erstellen Sie einen Ordner. zB F: \ Projekte
  2. Öffnen Sie diesen Ordner in git bash und führen Sie diesen Befehl aus: ssh-keygen -t rsa -b 4096 -C "[email protected]" (geben Sie eine gültige E-Mail-Adresse ein)
  3. Generieren Sie dann das Schlüsselpaar in zwei separaten Dateien im Projektordner. zB Projekt (private Schlüsseldatei), project.pub (öffentliche Schlüsseldatei)
  4. Gehen Sie zu diesem Speicherort C: \ Users \ acer.vagrant.d und suchen Sie die Datei unsicherer_privater_schlüssel
  5. Holen Sie sich eine Sicherungskopie der Datei, kopieren Sie den Inhalt des neu erstellten privaten Schlüssels und fügen Sie ihn in die Datei unsicherer_privater_schlüssel ein. Kopieren Sie dann unsicheren_privaten_schlüssel und fügen Sie ihn ebenfalls an dieser Stelle ein.
  6. Jetzt Vagabund in Ihrem Projektstandort. Nachdem Sie das obige Problem generiert haben, geben Sie vagrant ssh ein und geben Sie den Benutzernamen und das Passwort ein. (Standardmäßig sind Benutzername und Passwort als Vagabund festgelegt.)
  7. Gehen Sie zu diesem Speicherort cd /home/vagrant/.ssh und geben Sie mv autorisierte_Tasten autorisierte_Tasten_bk ein
  8. Geben Sie dann ls -al und vi autorisierte_Tasten ein, um den vi-Editor für autorisierte_Tasten zu öffnen.
  9. Öffnen Sie den generierten öffentlichen Schlüssel aus Notepad ++ (project.pub) und kopieren Sie den Inhalt. Drücken Sie dann i auf git bash, um den Einfügemodus im vi-Editor zu aktivieren, und klicken Sie mit der rechten Maustaste und fügen Sie ihn ein. Nach dem Drücken der Escape-Taste verlassen Sie den Einfügemodus
  10. : wq! Speichern Sie die Datei und geben Sie ls -al ein
  11. Dann werden die Berechtigungen wie folgt festgelegt, ohne dass drwx geändert werden muss ------. 2 Vagabund Vagabund 4096 13. Februar 15:33. drwx ------. 4 vagrant vagrant 4096 13. Februar 14:04 .. -rw -------. 1 Vagabund Vagabund 743 13. Februar 14:26 autorisierte_Tasten -rw -------. 1 root root 409 13. Februar 13:57 autorisierte_Tasten_bk -rw -------. 1 vagrant vagrant 409 Jan 2 23:09 autorisierte_schlüssel_originial Andernfalls geben Sie chmod 600 autorisierte_Tasten ein und geben Sie diesen Befehl zu chown vagrant ein: vagrant autorisierte_schlüssel
  12. Zum Schluss den Vagabund anhalten und den Vagabund wieder hochfahren.

************************* DAS IST FÜR MICH FEIN ARBEITEN ******************** ***********

Vayodya Tamari
quelle
0

Nur für jene Leute, die Idioten wie ich waren oder mit ihrer Vagabundmaschine etwas Seltsames passiert sind. Dieser Fehler kann auch auftreten, wenn Sie die Berechtigungen des Home-Verzeichnisses des vagabundierenden Benutzers (absichtlich oder versehentlich) geändert haben.

Sie können sich stattdessen (wie in anderen Beiträgen beschrieben) mit dem Kennwort ('vagrant') anmelden und dann den folgenden Befehl ausführen, um die Berechtigungen zu korrigieren.

sudo chown -R vagrant:vagrant /home/vagrant

Dann sollten Sie sich erneut anmelden können, ohne das Passwort einzugeben.

TL; DR: Die Berechtigungen für Ihren vagabundierenden Home-Ordner sind falsch.

Aeolun
quelle
0

Einfach:

homestead destroy
homestead up

Bearbeiten (nicht so einfach wie gedacht):

Das Problem war, dass neue Versionen von Homestead php7.0und einige andere Dinge verwendet werden. Um dieses Durcheinander zu vermeiden, stellen Sie Folgendes verisonein Homestead.yml:

version: "0"
stephen
quelle
0

Ich habe dieses Problem gelöst, indem ich Befehle unter Windows 7 CMD ausgeführt habe. Hier ist der Link zum letzten Beitrag in diesem Thread.

https://github.com/mitchellh/vagrant/issues/6744

Some commands that will reinitialize various network states:
Reset WINSOCK entries to installation defaults : netsh winsock reset catalog
Reset TCP/IP stack to installation defaults : netsh int ip reset reset.log
Flush DNS resolver cache : ipconfig /flushdns
Renew DNS client registration and refresh DHCP leases : ipconfig /registerdns
Flush routing table : route /f
Shehzad Nizamani
quelle
0

Ich habe mir in den letzten Tagen auf einer neu verpackten Basisbox den Kopf geschlagen. (Mac OS X, El Capitan)

Nach dem Verfahren von @Radek habe ich 'vagrant ssh-config' auf der Quellbox ausgeführt und Folgendes erhalten:

...
/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key
...

Auf der neuen Kopie gab mir dieser Befehl:

...
IdentityFile /Users/<username>/.vagrant.d/insecure_private_key
...

Also habe ich gerade diese Zeile in die neue Kopie eingefügt:

...
config.ssh.private_key_path = "/Users/Shared/dev/<source-box-name>/.vagrant/machines/default/virtualbox/private_key"
...

Nicht perfekt, aber ich kann mit meinem Leben weitermachen.

Rickb
quelle
0

Eine andere einfache Lösung: Gehen Sie in Windows zur Datei Homestead / Vagrantfile und fügen Sie diese Zeilen hinzu, um eine Verbindung mit einem Benutzernamen / Passwort anstelle eines privaten Schlüssels herzustellen:

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

Schließlich sieht ein Teil der Datei folgendermaßen aus:

if File.exists? homesteadYamlPath then
    settings = YAML::load(File.read(homesteadYamlPath))
elsif File.exists? homesteadJsonPath then
    settings = JSON.parse(File.read(homesteadJsonPath))
end

config.ssh.username = "vagrant"  
config.ssh.password = "vagrant"  
config.ssh.insert_key = false 

Homestead.configure(config, settings)

if File.exists? afterScriptPath then
    config.vm.provision "shell", path: afterScriptPath, privileged: false
end

Ich hoffe das hilft ..

Mahmoud Mostafa
quelle
0

Ich habe dies auf meinem VM-Computer versucht

ändere die Berechtigungen / home / vagrant (habe einen chmod 700 drauf gemacht)

jetzt kann ich direkt in meine boxen ssh

ajay_fuel_stock_lamp_stack
quelle