将网络代理挂接到 JSch 会话
在打开 SFTP 传输所用的 SSH 会话之前,先选择 JSch 的 HTTP CONNECT 或 SOCKS5 适配器。
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 监听器并不理解同一种协商过程。
在适合使用 JSch 的 HTTP Basic 代理登录时,请在连接之前调用 gateway.setUserPasswd(proxyUser, proxyPassword)。SSH 账户仍配置在会话上。会话连接之后再打开 SFTP 通道,传输结束后断开通道和会话。