Java中具有防火墙的简单SSH隧道

Java中具有防火墙的简单SSH隧道,java,ssh,Java,Ssh,我目前正在尝试使用Java创建一个自动测试,该测试在远程服务器中运行一些命令。问题是这个远程服务器有防火墙。我可以手动使用putty将ssh连接到第一个服务器(防火墙)。然后,我将详细信息输入到希望执行命令的服务器。我看过一些文章,其中的代码提到了如何使用java代码(jsch.jar),我可以用ssh将这些代码连接到远程客户端,但我还没有找到一个足够好的解释,说明什么时候存在防火墙。有人能给我解释一下我应该做什么吗?如果可能的话,用一些代码片段不是一个完整的答案,只是一个想法 OpenSSH有

我目前正在尝试使用Java创建一个自动测试,该测试在远程服务器中运行一些命令。问题是这个远程服务器有防火墙。我可以手动使用putty将ssh连接到第一个服务器(防火墙)。然后,我将详细信息输入到希望执行命令的服务器。我看过一些文章,其中的代码提到了如何使用java代码(jsch.jar),我可以用ssh将这些代码连接到远程客户端,但我还没有找到一个足够好的解释,说明什么时候存在防火墙。有人能给我解释一下我应该做什么吗?如果可能的话,用一些代码片段

不是一个完整的答案,只是一个想法

OpenSSH
有一个名为
ProxyCommand
的功能。它允许用户在目标系统上自动发出命令,可能是另一个
ssh

因此,在我的
.ssh/config
中有几个类似的条目:

Host the.private.host.behind.firewall.net
  Hostname 10.0.100.106
  User username_on_the_private_host
  Compression yes
  ProxyCommand ssh the.firewall.net nc -q 1 %h %p
现在我可以对.private.host.behind.firewall.net发出
ssh,首先在.firewall.net上进行
ssh身份验证,然后在目标主机上进行第二次身份验证

可能Java自己实现了SSH协议,但也许您可以创建一个这样的结构