SSH-Tunnel über mehrere Hopfen mit Kitt

12

Ich habe eine Situation, in der ich eine Verbindung zu einem Linux-Computer herstellen möchte, auf dem VNC ausgeführt wird (nennen wir es VNCServer), der sich hinter zwei aufeinanderfolgenden Linux-Computern befindet Ich ssh in das Gateway2 und dann von dieser Shell ich schließlich in VNCServer ssh. Ich kann das Netzwerkdesign und den Zugriffsfluss Laptop -> Gateway1 -> Gateway2 -> Server nicht ändern. Ich habe keine root-Rechte auf Gateway1 und alle Ports außer 22 und 5901 sind geschlossen.

Gibt es eine Möglichkeit, einen VNC-Viewer auf meinem Laptop zu starten und auf den VNCServer zuzugreifen? Ich verstehe, dass dies mit den SSH-Tunneling-Funktionen geschehen kann und ich Kitt auf meinem Windows-Laptop habe (leider kann kein Linux oder Cygwin usw. auf dem Arbeits-Laptop installiert werden). Jede Hilfe wird sehr geschätzt, da dies mein Leben so einfacher machen würde!

xkcd
quelle

Antworten:

19

Putty unterstützt SSH-Tunnel. Wenn Sie den Baum Verbindung, SSH erweitern, wird ein Eintrag für Tunnel angezeigt.

In lokalen Tunneln wird auf Ihrem Windows-Computer ein localhost-Port geöffnet, der von der angegebenen IP-Adresse und dem angegebenen Port abweicht. Wenn ich zum Beispiel versuche, RDP auf einen Desktop in meinem Haus zu übertragen, wähle ich im Allgemeinen einen zufälligen lokalen Port, etwa 7789, und gebe dann die lokale IP-Adresse des Desktops (1.2.3.4:3389) als Remote-Adresse ein Wirt. Stellen Sie sicher, dass Sie auf "Hinzufügen" und dann auf "Übernehmen" klicken. Wenn Sie zu diesem Zeitpunkt auf 127.0.0.1:7789 rdpen, stellen Sie über die Putty-Sitzung eine Verbindung zu 1.2.3.4:3389 her.

Hier kommt der Spaß ins Spiel. Wenn Sie dann einen Porttunnel auf Ihrer Zwischenbox einrichten und den lokalen Port einrichten, den Sie als Remote-Port in Putty angegeben haben, können Sie über Ihren Putty und über die Zwischenbox Ihr endgültiges Ziel abspringen. Sie müssen immer noch ein paar ssh-Verbindungen herstellen, aber Sie können VNC- oder RDP-Verbindungen direkt vom Windows-System aus herstellen, sobald Sie dies eingestellt haben. Ich glaube, Sie möchten dies tun.

BEISPIEL

  1. Gehen Sie zum Tunnel-Panel in Putty (Verbindungen-> SSH-> Tunnel, auf die Sie entweder über das Kontextmenü zugreifen, wenn die SSH-Sitzung bereits aktiv ist, oder im Anfangsbildschirm der Verbindung, wenn Sie Putty starten).
  2. Erstellen Sie einen Tunnel mit der lokalen Quelle 15900 und der Remote-Quelle 127.0.0.1:15900
  3. Stellen Sie eine Verbindung zu Gateway1 her (falls noch nicht geschehen).
  4. Auf Gateway1 ist ssh -L 127.0.0.1:15900:VNCServerIP:5900 user @ Gateway2
  5. Sobald das SSH zu Gateway2 aktiv ist, versuchen Sie, auf 127.0.0.1:15900 zu vnc - Sie sollten jetzt den VNC-Bildschirm auf der anderen Seite sehen!

ADDED BONUS - das wissen nicht viele, aber dieser Prozess kann auch zum Proxy von IPv6 / IPv4-Verkehr verwendet werden. SSH ist es egal, welches Protokoll für die Tunnel verwendet wird. Daher können Sie theoretisch von einem IPv4-System aus auf IPv6-Hosts zugreifen, vorausgesetzt, der SSH-Server ist Dual-Stack-fähig (hat sowohl IPv4- als auch IPv6-Adressen).

Peter Grace
quelle
14

Es gibt eine Alternative, wenn Sie PuTTY für beide Hops verwenden möchten. In diesem Beispiel wechseln wir vom Gateway Nr. 1 (10.0.1.123) zum Gateway Nr. 2 (10.0.1.456) zum Port 80 am 10.0.1.789.

  1. Erstellen Sie zuerst den Hop zu Gateway Nr. 1. Stellen Sie zunächst die Verbindung zum ersten Server her. Richten Sie unter Verbindung> SSH> Tunnel einen Tunnel zum zweiten Gateway ein. In diesem Beispiel leiten wir Port 2222 an das zweite Gateway weiter.

    Verbindung zum Server herstellen

    Tunnel aufbauen

  2. Jetzt richten wir den zweiten Hop ein. Wir tunneln durch das erste Gateway zum nächsten Gateway und richten die Portweiterleitung auf dem zweiten Gateway ein. Die Verbindung erfolgt zu localhost auf Port 2222. Dadurch wird die laufende SSH-Verbindung zum zweiten Hop getunnelt. Auf dieser Verbindung richten wir eine Portweiterleitung von Port 3333 zu 10.0.1.789 ein.

    Bildbeschreibung hier eingeben

    Bildbeschreibung hier eingeben

  3. Öffnen Sie nun einen Browser und navigieren Sie zu 127.0.0.1:3333. Sie tunneln durch die beiden SSH-Verbindungen zu 10.0.1.789:80

Scott
quelle
1
Gibt es eine Möglichkeit, dasselbe mit einer einzigen Putty-Sitzung mit zwei Tunneln zu erreichen, die im Menü SSH -> Tunnel konfiguriert wurden? Auf diese Weise müssen Sie nur eine Kittinstanz öffnen?
Ulrich