JSch помещает сетевой прокси в сеанс SSH. Канал SFTP, открытый поверх этого сеанса, затем использует установленный маршрут.

Для сеанса, уже настроенного на нужный сервер SSH, выберите шлюз HTTP CONNECT перед подключением:

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

Сеанс по-прежнему хранит назначение SSH, конфигурацию входа и политику ключа узла. Адрес шлюза обозначает посредника. Его политика должна разрешать фактический порт SSH назначения. Для общедоступного сервера SFTP на разрешённом публичном маршруте список HTTP-прокси предлагает адреса шлюзов для первого примера. Используйте новый адаптер прокси без учётных данных прокси и подтвердите разрешение для фактического узла и порта SSH.

Для службы SOCKS5 используйте вместо этого соответствующий адаптер:

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

Выберите адаптер, соответствующий протоколу конечной точки. Прокси HTTP и слушатель SOCKS не понимают одно и то же согласование.

Там, где уместен вход через прокси HTTP Basic в JSch, вызовите gateway.setUserPasswd(proxyUser, proxyPassword) перед подключением. Учётная запись SSH остаётся настроенной в сеансе. Откройте канал SFTP после подключения сеанса и отключите канал и сеанс, когда передача завершена.

Похожие статьи