Kontext
Ich verwende Ubuntu Desktop als meine primäre Maschine, die ich D nennen werde. Ich möchte über ssh eine Verbindung zum Server S herstellen, aber die Firewall blockiert mich.
Ich habe Zugriff auf Server S über einen sehr umständlichen Pfad, der eine virtuelle Windows-Maschine und PuTTY umfasst . Das macht die Arbeit mit diesem Server extrem ärgerlich: Eine völlig andere Umgebung, Kopieren / Einfügen funktioniert nicht, ich kann meinen Desktop nicht richtig verwenden, während ich mit ihm verbunden bin (Alt-Tab wird von der virtuellen Maschine unterbrochen) usw
Ich habe überprüft, ob ich vom Server S auf meinen Desktop-Computer D ssh kann (im Gegensatz zu dem, was ich benötige).
Könnte ich irgendwie eine "Portweiterleitung" oder ähnliches vom Server aus initiieren, damit ich von meinem Desktop aus ssh zum Server senden kann?
quelle
D->S
Missbrauch vortäuschenS->D
Antworten:
Mit dem folgenden Befehl können Sie einen SSH-Tunnel vom Remote-Server zu Ihrem lokalen Computer einrichten:
Wenn der Tunnel eingerichtet ist, können Sie einfach mit dem folgenden Befehl ssh an Ihren Remote-Server senden:
Bitte beachten Sie, dass Sie ssh-Schlüssel für die automatische Anmeldung einrichten müssen (keine Passwortabfrage). Wenn Sie den SSH-Tunnel interaktiv erstellen möchten, können Sie die Optionen entfernen
-f -N
. Für weitere Informationenman ssh
.quelle
Wenn Sie eine neuere Version von OpenSSH (7.3+) verwenden, können Sie verwenden,
ProxyJump
was alles auf magische Weise zusammenbrennt:Welches in Ihrem
~/.ssh/config
Aussehen wie:ProxyJump
unterstützt die volle SSH - Syntax, wenn Sie alsojim
auf ,windows_server
und es verwendet Port2222
für ssh.remote_server
ist bei IP192.168.0.110
ab demwindows_server
dann kannst du schreiben:Und immer noch einfach laufen
ssh remote_server
, um dorthin zu gelangen.Wenn Sie eine ältere Version von SSH ausführen , verwenden Sie ProxyCommand. Auf diese Weise können Sie SSH anweisen , zuerst einen Befehl zum Herstellen einer Proxy-Verbindung auszuführen, bevor Sie den eigentlichen SSH-Befehl ausführen.
Dies verwendet die SSH- W- Option, die für die geheimnisvollere Netcat-Syntax eine Abkürzung ist .
Beachten Sie, dass, wie beim Laufen
ssh remote_server
Sie sind jetzt auf diewindows_machine
Sie benötigen , um sicherzustellen , dass Sie die IP - Adresse der Verwendungremove_server
aus dem Sprung Feld anstatt die IP von Ihrem Computer - diese gut die gleiche sein kann.Sie können dann diese Anweisung zu Ihrer
~/.ssh/config
Datei hinzufügen :Das bedeutet, wenn
remote_server
es sich um eine andere Maschine handeltwindows_machine
, können Sie diese in die Konfiguration einfügen und trotzdem nur verwendenssh remote_server
.quelle
Können Sie nicht einfach darum bitten, dass SSH von Ihrem Desktop zum Server zugelassen wird, anstatt zu versuchen, Dinge zu umgehen und einen verschlungenen Pfad zu erstellen? Wenn Sie die Notwendigkeit dafür haben und auf den Server zugreifen sollten, kann ich nicht verstehen, warum die Anfrage abgelehnt wurde.
quelle