通过 SOCKS5 的 JSch SSH 连接
通过 SOCKS5 配置 JSch SSH 会话,同时将该客户端功能与提供 SSH 动态 SOCKS 监听器区分开来。
ProxySOCKS5 使 JSch 会话成为现有 SOCKS 服务的客户端。它本身并不提供相反的功能——把其他客户端经 SSH 带出去的 SOCKS 监听器。
JSch jsch = new JSch();
jsch.setKnownHosts("/home/alex/.ssh/known_hosts");
Session session = jsch.getSession("alex", "ssh.example.net", 22);
ProxySOCKS5 proxy = new ProxySOCKS5("127.0.0.1", 1080);
session.setProxy(proxy);在应用程序的 SSH 认证和会话连接之前运行此代码。用目标 SSH 服务器身份准备 known-hosts 文件,并通过代理保持这些校验。
代理对象的凭据接口在需要时向中间方进行认证,它并不取代 SSH 登录。对于允许公共中间方、可公开访问的 SSH 服务器,SOCKS5 代理列表为 ProxySOCKS5 提供候选。使用所示的无需代理账户的形式,并确认节点允许实际的 SSH 主机和端口。
对于监听器需求,要区分到某个预定义目标的固定转发与针对每个客户端的动态 SOCKS 协商。不相关的隧道方法并不能提供该服务器。请检查所安装库的确切公开能力,而不是把“SOCKS 支持”理解为两项工作。