Mein Ziel ist es, eine Verbindung zu einem Server (Host) herzustellen, der sich hinter einer Firewall befindet. Ich kann auf diesen Server zugreifen, indem ich eine Verbindung zu einem anderen Server (Tunnel) im Netzwerk und dann SSH zu diesem Server herstelle. Ich kann das gleiche Szenario jedoch nicht über JSch implementieren.
Ich kann den unten stehenden Code nicht verwenden, den ich für diesen Zweck geschrieben habe. Bitte lassen Sie mich wissen, wenn ich hier etwas albernes mache.
%Vor% Der obige Code gibt die folgende Ausnahme für die session.connect(30000);
-Zeile an.
Eine SOCKS
Proxy-Einstellung für jsch ermöglicht die Verbindung mit einem laufenden Proxy-Server auf der Remote-Seite. Ein sshd
auf der entfernten Seite würde nicht als SOCKS
proxy angesehen werden. Sie müssen einen lokalen Port vor dem ssh-Port auf der Maschine, auf die Sie tunneln, einrichten und dann eine sekundäre SSH-Verbindung zu diesem System mithilfe der API herstellen.
Ich habe dein Beispiel genommen und es leicht umgeschrieben, um dies zu erreichen:
%Vor%Dieser Code erstellt einen lokalen Port, der zum ssh-Port auf dem Zielsystem weiterleitet und dann eine Verbindung herstellt. Die Ausführung des Befehls hostname zeigt, dass er tatsächlich auf dem weitergeleiteten System ausgeführt wird.
Tags und Links java ssh jsch ssh-tunnel