2016-05-12 12 views
0

Ich habe 3 Server: serverA, serverB und serverMySQL.Zugriff auf eine MySQL-Datenbank über SSH-Tunnel

serverMySQL liegt hinter einer Firewall und kann nicht von serverB erreicht werden.

serverA kann über SSH auf serverB und serverMySQL zugreifen.

Gibt es eine Möglichkeit, einen SSH-Tunnel einzurichten, so dass ich auf die MySQL-Datenbank unter zugreifen kann?

Antwort

0

Wenn serverB können den MySQL-Server (Port 3306 nicht SSH) Zugriff Sie in serverA laufen müssen:

ssh -L 3306:mysqlServer:3306 serverB 

In serverA dann konfigurieren MySQL-Server als 127.0.0.1:3306

Wenn serverB nur kann MySQL zugreifen mit SSH, dann müssen Sie in serverA laufen:

ssh -L 3306:127.0.0.1:12345 serverB 

und dann in serverB:

ssh -L 12345:127.0.0.1:3306 serverMySQL 

Die 12345 ist nur jeder Port, der nicht verwendet wird (und über 1024)

+1

mit 'autossh' könnte ein besserer Ansatz sein, da es um die Verbindung aufrecht zu halten versucht. – jotik

+0

Der Kommentar von @jotik ist gut, aber er baut auf dem auf, was ich gesagt habe. Nachdem Sie es funktioniert haben, fügen Sie die Schlüsselauthentifizierung hinzu (damit Sie nicht ständig Kennwörter eingeben müssen) und fügen Sie dann autossh hinzu. – gfelisberto

Verwandte Themen