我想在Java程序中打开SSH隧道,以便系统的其余部分也可以访问连接(例如,如果我将数据库的端口转发到localhost,我应该能够打开另一个程序中的数据库)...换句话说,我需要做的就是为unix命令ssh创建一个Java包装器。但是我需要程序是跨平台的,所以如果可能的话我想使用Java库。
这是否可行(我一直在查看不同的库,但是无法创建隧道,因此系统的其余部分可以使用它)
答案 0 :(得分:5)
我在基于Jcraft的Jsch的beanizer文章中取得了成功。以下是更多详情:http://www.beanizer.org/site/index.php/en/Articles/Java-ssh-tunneling-with-jsch.html
答案 1 :(得分:5)
JSch库肯定使这很简单,并支持端口转发:
JSch jsch = new JSch();
Session session = jsch.getSession(user, host);
session.setPassword(password);
session.connect(timeout);
session.setPortForwardingL(listenPort, destHost, destPort);
答案 2 :(得分:0)
也许是Jsch?
答案 3 :(得分:0)
我一直在使用Ganymede SSH-2取得了巨大的成功,实际上是第一次工作,令我惊讶。