Java SSH从另一台远程计算机连接到远程计算机

时间:2012-05-04 09:38:58

标签: java linux ssh

我已经搜索了这个问题,分析了几个开源工具(如Ganymed SSH-2SSHJsshxcute),找不到任何从远程连接远程机器的解决方案机。我所拥有的是:
1)机器B在防火墙后面,并且对互联网(而不是我的基础设施)不可见 2)我可以从机器A(也不在我的基础设施中)连接到机器B 3)我需要从我的机器连接到机器A(非常简单的解决方案,任何来自列出的SSH库可以做到这一点),从机器A到机器B(可能我缺乏关于SSH协议的知识或者没有列出的工具可以做到这一点? )。
我发现一个lib允许描述的连接方案是J2SSH,但它不是免费的。问题是,是否有任何免费的库可以让我描述连接?

2 个答案:

答案 0 :(得分:1)

您需要了解SSH隧道。做你想做的事很容易。看看本教程http://www.rzg.mpg.de/networkservices/ssh-tunnelling-port-forwarding。 'gate'和'work'大致相当于'B'和'A'。

答案 1 :(得分:1)

请参阅JSch的示例程序http://www.jcraft.com/jsch/examples/JumpHosts.java.html

$ wget http://www.jcraft.com/jsch/examples/JumpHosts.java
$ wget http://sourceforge.net/projects/jsch/files/jsch.jar/0.1.48/jsch-0.1.48.jar
$ javac -cp ./jsch-0.1.48.jar:. JumpHosts.java
$ java -cp ./jsch-0.1.48.jar:. JumpHosts usrA@hostA usrB@hostB