首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jsch:隧道上的HTTPS

Jsch:隧道上的HTTPS
EN

Stack Overflow用户
提问于 2020-03-19 20:22:35
回答 1查看 156关注 0票数 3

我可以在Ubuntu中建立一个端口转发会话,如下所示:

ssh -L 8000:dev.mycompany.com:443 jump.mycompany.com

现在我想用Jsch来模拟一下:

代码语言:javascript
复制
    public static void openTunnel() {
    JSch jsch = new JSch();
    String privateKey = "~/.ssh/id_rsa";
    try {
        jsch.addIdentity(privateKey);
        log.info("Connecting to {}@{}", getJumpUser(), getJumpServer());
        Session session = jsch.getSession(getJumpUser(), getJumpServer(), 22);
        session.connect();
        session.setPortForwardingL(8000, getHost(), 433);
    } catch (JSchException e) {
        log.error("", e);
    }
}

然而,在设置隧道并尝试使用RestTemplate (Spring HTTP Client --但curl也给出一个错误)连接到它之后,我得到了以下异常:

代码语言:javascript
复制
ssl.SSLHandshakeException: Remote host closed connection during handshake
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:744)

我必须在Jsch中配置什么才能使它与openssh客户端完全一样?

EN

回答 1

Stack Overflow用户

发布于 2020-03-19 21:05:16

我想,您正在尝试连接到一个不可公开的https get服务器。

端口转发可以工作,但https在localhost:8000上不起作用,因为证书是用于dev.mycompany.com而不是localhost

您可以通过在hosts文件中添加一个条目来作弊。

代码语言:javascript
复制
127.0.0.1 dev.mycompany.com

但可能尝试socks5更容易一些。

代码语言:javascript
复制
ssh jump.mycompany.com -D 8005

然后在浏览器中进行设置(firefox示例):

选择:手动配置代理:

Socks主机: localhost

端口: 8005

Socks5

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60757179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档