JSch legt den Netzwerk-Proxy auf die SSH-Sitzung. Ein SFTP-Kanal, der über diese Sitzung geöffnet wird, nutzt anschließend die aufgebaute Route.

Für eine bereits auf den vorgesehenen SSH-Server konfigurierte Sitzung wählen Sie vor dem Verbinden ein HTTP-CONNECT-Gateway:

ProxyHTTP gateway = new ProxyHTTP("proxy.example", 8080);
session.setProxy(gateway);
session.connect(10000);

Die Sitzung enthält weiterhin das SSH-Ziel, die Anmeldekonfiguration und die Hostschlüssel-Richtlinie. Die Gateway-Adresse benennt den Vermittler. Dessen Richtlinie muss den tatsächlichen SSH-Port des Ziels zulassen. Für einen öffentlich erreichbaren SFTP-Server auf einer erlaubten öffentlichen Route bietet die HTTP-Proxy-Liste Gateway-Adressen für das erste Beispiel. Verwenden Sie einen neuen Proxy-Adapter ohne Proxy-Anmeldedaten und bestätigen Sie die Freigabe für den tatsächlichen SSH-Host und -Port.

Für einen SOCKS5-Dienst verwenden Sie stattdessen den passenden Adapter:

session.setProxy(new ProxySOCKS5("proxy.example", 1080));

Wählen Sie den Adapter, der zum Protokoll des Endpunkts passt. Ein HTTP-Proxy und ein SOCKS-Listener verstehen nicht dieselbe Aushandlung.

Wo die HTTP-Basic-Proxy-Anmeldung von JSch geeignet ist, rufen Sie vor dem Verbinden gateway.setUserPasswd(proxyUser, proxyPassword) auf. Das SSH-Konto bleibt an der Sitzung konfiguriert. Öffnen Sie den SFTP-Kanal, nachdem die Sitzung verbunden ist, und trennen Sie Kanal und Sitzung, wenn die Übertragung abgeschlossen ist.

Ähnliche Artikel