Es handelt sich hierbei um drei Maschinen.
- Localhost, wo ich meine Entwicklung durchführe. Auch bekannt als Laptop.
- Bastion-Host, mit dem Sie sich zuerst verbinden müssen. Auch bekannt als Sprung.
- MySQL-Server, mit dem ich eine Verbindung herstellen möchte. Auch bekannt als DB.
Mein öffentlicher SSH-Schlüssel befindet sich beim Sprung in /home/myusername/.ssh/authorized_keys.
Meine ~/.ssh/config hat Folgendes:
Host jump
HostName jump.domain.com
User myusername
IdentityFile ~/.ssh/myprivatekey
Ich kann ssh jump
und komme gut zum Springen.
Welchen SSH-Befehl muss ich im Terminal auf dem Laptop ausführen, um eine Verbindung vom Laptop zur DB herstellen zu können über
mysql -h 127.0.0.1 -P 3308
Ich brauche einen SSH-Tunnel und eine Portweiterleitung, aber die Syntax muss ich noch richtig hinbekommen. Ich möchte 3308 für die Produktionsdatenbank und 3307 für die Staging-Datenbank verwenden und führe die lokale MySQL-Datenbank auf 3306 aus, weshalb die Portweiterleitung auf nicht standardmäßige MySQL-Ports erfolgt.
Antwort1
Das hier ist, was ich letztendlich verwendet habe:
ssh -f -L3307:staging.mysql-server.com:3306 jump sleep 10000000
ssh -f -L3308:production.mysql-server.com:3306 jump sleep 10000000
welches ist vonhttp://csce.uark.edu/~kal/info/private/ssh/ch09_02.htmAbschnitt 9.2.6
Hinweis: Im Gegensatz zu meiner Frage ist kein Proxy-Befehl erforderlich, sondern nur die richtige Kombination von SSH-Befehlszeilenoptionen.
Antwort2
Der Befehl lautet ssh -fL <mysql db port>:<mysql server url>:<mysql db port> <username>@<bastian url> '<remote command>'
.
Antwort3
Sie können die folgende .ssh/config-Datei verwenden, vorausgesetzt, Sie stellen über Maschine B eine Verbindung von Maschine A zu C her
Host B
User username_on_b
Hostname ip_of_b
IdentityFile ~/.ssh/key_for_b
Host C
User username_on_c
Hostname ip_of_c
IdentityFile ~/.ssh/key_for_c
Localforward 3308 ip_of_your_sql_server:3306
Proxyjump B
# or old-fashion
# Proxycommand ssh B nc %h %p
Dann tippt man einfach von A aus:
ssh C
Dann können Sie von A aus
mysql -P 3308 -H localhost