2014-03-12 4 views
6

Mein MySQL-Client (Sequel Pro) ist für die Verbindung mit Vagrant über SSH eingerichtet. Ich habe Setup die folgende in meiner ~/.ssh/config Datei:Vagrant SSH Tunneling nach der Verwendung von `vagrant ssh`

Host vagrant 
    HostName 127.0.0.1 
    CheckHostIP no 
    Port 2222 
    User vagrant 
    IdentityFile ~/.vagrant.d/insecure_private_key 

Alles funktioniert gut, wenn ich nicht vagrant ssh ausgeführt haben. Aber sobald ich mich mit diesem Befehl in die Vagrant-Box eingeloggt habe, kann Sequel Pro keine Verbindung mehr über SSH herstellen - es sagt nur "Der SSH-Tunnel wurde unerwartet geschlossen." Also muss ich vagrant reload ausführen, bevor ich mich mit dem MySQL-Server verbinden kann.

Weiß jemand, wie man dieses Problem umgehen kann?

Antwort

12

Ich habe dieses Problem mit Port Forwarding anstelle von SSH-Tunneling umgehen können. Ich habe folgendes Vagrantfile:

config.vm.network :forwarded_port, guest: 3306, host: 8306 

dann mit MySQL über Port 8306.

+0

Dies war die einzige Lösung, die für mich auf einem Mac lief El Capitan funktioniert. Ich hatte die Berechtigungen für mysql hinzugefügt; den Eintrag 'known_hosts' für' 127.0.0.1' entfernt + wieder hinzugefügt; redigierte 'my.cnf' Datei, um verschiedene Änderungen usw. vorzunehmen. Wichtigerweise scheint dies jedoch die richtige Lösung zu sein. – wired00

3

Ich hatte das ähnliche Problem. Ich kämpfte den ganzen Tag. Ich ging sogar durch Vagrant and Sequel Pro von Jeffrey Way. Hatte immer noch ein Problem. Ich habe sogar die Portnummer in der Vagrant-Datei geändert und alles Mögliche getan. Aber das Folgende rettete mein Leben.

Als ich das tat vagrant reload als ich sah,

default: 22 => 2200 (adapter 1) 

Aber, was ich war tat, als Verbindung in Folge pro Einrichtung ich SSH PORT: 2222 geschrieben hatte, tat ich dies basierend auf dem Video aus den obigen Link. Aber sobald ich zu der Nummer wechselte, die ich mit vagrant reload sah, als es mich für die Überprüfung fragte. Ich habe "JA" gewählt. Und es wurde verbunden. Happy End nach einem anstrengenden Tag. Es ist für zukünftige Leser, hoffentlich wird jemand irgendwo aus diesem Grund nicht einen Tag wie ich verbringen müssen. ;)

+0

Aus irgendeinem Grund hatte ich es auf Port 2222 gesetzt, ich bemerkte in der config.yaml Datei, dass es auf 22 zeigte, ich änderte es in Port 22 in meinen Sequel Pro Einstellungen und stellte es dann auf meine private_key Datei innerhalb des .vagrant/machines/default/virtualbox/folder – Brad

16

Ich hatte das gleiche Problem und es stellte sich heraus, dass es ein alter Schlüssel in meiner known_hosts Datei ist.

Also, ich tat:

$ vi ~/.ssh/known_hosts 

auf die Linie ging mit 127.0.0.1:2200 drauf, dann dd tat Befehl diese Zeile zu löschen.
:x zu speichern, und bam Bob yer Onkel. Verbindung gewährt, es lebe Jambi.

Ich hoffe, dass jemand etwas Kummer rettet. Prost.

+0

Das hat den Trick für mich gemacht! Vielen Dank! Beachten Sie auch, dass wenn Ihre vagrantfile eine IP-Adresse ': private_network' spezifiziert, Sie diese Zeile auch von' known_hosts' löschen müssen. "Bam Bob Yer Onkel" - liebe das. Haha. – ctlockey

1

Versuchen Sie, den anderen Schlüssel aus Ordner mit Vagrant Projekt
zu laden. . {Vagrant_project}/Vagabund/Maschinen/default/virtualbox/private_key

0

Zusätzlich zu den oben genannten, könnte es eine der folgenden Probleme:

  • Die "insecure_private_key" wird nur verwendet, wenn die Box wird zuerst erzogen. Sofern Sie die Funktion nicht deaktiviert haben (insert_key = false), ersetzt der Vagrant diesen Schlüssel durch einen zufällig generierten Schlüssel, der in.Vagabund/Maschinen/{Computername}/{Providername}/private_key

    Sie diesen Schlüssel in Ihrem ssh_config verwenden können

  • Ihre MySQL-Einstellungen etwas anderes tun, wenn die Verbindung von localhost kommt und nicht von den „externen“ IP Adresse.