JSch coloca el proxy de red en la sesión SSH. Un canal SFTP abierto sobre esa sesión utiliza después la ruta establecida.

Para una sesión ya configurada hacia el servidor SSH deseado, elija una puerta HTTP CONNECT antes de conectar:

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

La sesión sigue conservando el destino SSH, la configuración de inicio de sesión y la política de clave de host. La dirección de la puerta identifica al intermediario. Su política debe permitir el puerto SSH real del destino. Para un servidor SFTP accesible públicamente en una ruta pública permitida, la lista de proxies HTTP ofrece direcciones de puerta para el primer ejemplo. Use un adaptador de proxy nuevo sin credenciales de proxy y confirme el permiso para el host y el puerto SSH reales.

Para un servicio SOCKS5, use en su lugar el adaptador correspondiente:

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

Elija el adaptador que coincida con el protocolo del extremo. Un proxy HTTP y un escucha SOCKS no entienden la misma negociación.

Cuando el inicio de sesión de proxy HTTP Basic de JSch sea adecuado, llame a gateway.setUserPasswd(proxyUser, proxyPassword) antes de conectar. La cuenta SSH permanece configurada en la sesión. Abra el canal SFTP después de que la sesión se conecte y desconecte el canal y la sesión cuando termine la transferencia.

Artículos relacionados