SSH-Portweiterleitung über Pseudoterminal

SSH-Portweiterleitung über Pseudoterminal

Hier ist eine Situation:

Ich erledige meine gesamte Arbeit auf einem Mac.

  1. 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'
    
  2. 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.

  3. 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
    
  4. 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.

verwandte Informationen