使用JSch的SSH内的HTTPS隧道

时间:2019-03-05 00:05:35

标签: java http ssh https jsch

我想使用Java库JSch通过SSH与HTTPS服务器通信。图书馆网站上的Streamforwarding示例易于使用,即使在这样的代码中也是如此(Java JSch create channel to access remote server via HTTP(s))。

问题是当我想使用HttpsURLConnection类通过HTTPS进行通信时。例如,发出GET请求,我尝试对InputStream类(来自JSch)的ChannelInputStream中的HttpsUrlConnection进行操作。

1 个答案:

答案 0 :(得分:0)

通过SSH连接将本地端口转发到远程HTTP服务器端口:

Session session = jsch.getSession("username", "ssh.example.com");
// ...
session.connect();

int forwardedPort = session.setPortForwardingL(0, "http.example.com", 80); 

现在您可以将HttpsUrlConnection连接到http.example.com并连接端口forwardedPort