Hier ist eine Situation:
Ich erledige meine gesamte Arbeit auf einem Mac.
Es gibt einen bestimmten Linux-Server 'server01" das den Zugriff auf einen anderen Linux-Server ermöglicht "server02' über ein Pseudoterminal
Um also per SSH auf 'server02', ich mache dies von meinem Mac aus:
ssh -t server01 'inline server02'
Dann werde ich nach einem Passwort gefragt, umserver01'; Ich gebe es ein und das loggt mich ein in 'server02'. Jetzt bin ich auf der 'server02' Terminal.
Aus 'server02' Ich kann auf die MySQL-Datenbank zugreifen, die sich auf ' befindet.server03' mit dem folgenden MySQL-Befehl:
mysql --host=server03 --port=4201 --user=myuser --password=mypass mydb
Weder 'server01' noch 'server02' noch mein Mac haben SSH-Zugriff auf 'server03'
Nun möchte ich auf das MySQL zugreifen unter 'server03' von meinem Mac direkt über eine Art Portweiterleitung. Wenn ich also den folgenden Befehl auf meinem Mac-Terminal eingebe, sollte er mich mit der MySQL-Datenbank auf ' verbinden.server03':
mysql --host=localhost --port=4201 --user=myuser --password=mypass mydb
Gibt es eine Möglichkeit, das zu tun? Jede Hilfe wird sehr geschätzt.
Antwort1
Wenn Sie von Server01 aus per SSH auf Server02 zugreifen können, können Sie versuchen
ssh -t -L server02:4201 server01 'ssh -N -L server03:4201 server02'
es wird eine Kettenverbindung
localhost:4201 -> server02:4201 -> server03:4201
verbindet sich einfach lokal mit Port4201auf dem Mac
Verwenden Sie besser die Schlüsselauthentifizierung und den SSH-Agenten, um die Eingabe von Passwörtern zu vermeiden.