【发布时间】:2019-05-03 01:11:07
【问题描述】:
我不确定这是否是由使用私钥而不是密码进行端口转发引起的,但这就是我正在尝试做的事情
我需要将本地端口 3308 一直转发到我的 SQL DB 3306。
我可以在本地的终端中一起运行这样的事情
ssh -L 3308:localhost:3307 username@jumpbox "ssh -L 3307:mysqlDB:3306 username@server"
或者在我的本地运行第一部分,然后在 jumpbox 上运行第二部分。两者都可以正常工作,我可以连接到我的 localhost:3308。
当我开始使用 JSch 时,问题就来了。这是我的代码
JSch jsch = new JSch();
jsch.addIdentity("~/.ssh/id_rsa");
Session session = jsch.getSession("username", "jumpbox");
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
int assinged_port = session.setPortForwardingL(3308, "localhost", 3307);
Session mysqlSession = jsch.getSession("username", "server", assinged_port);
mysqlSession.setConfig("StrictHostKeyChecking", "no");
mysqlSession.connect(); // Connection timed out here
mysqlSession.setPortForwardingL(3307, "mysqlDB", 3306);
第一次连接已完成,但第二次超时。
线程“main”com.jcraft.jsch.JSchException 中的异常:java.net.ConnectException:操作超时(连接超时)
我在 JSch 或端口转发方面做错了吗?
【问题讨论】:
标签: java ssh jsch portforwarding ssh-tunnel