当前位置: 首页 > 知识库问答 >
问题:

如何通过JSCH进行多次ssh:端口转发、ssh命令或ssh隧道?

越景天
2023-03-14

但是现在要通过Java的JSch库来完成,怎么做呢?第一次尝试了portforwarding,但在终端上我没有这样做(没有在SSH中设置-R-L参数)。

然后我遇到了一个问题,如何使用JSCH SSH到另一个SSH服务器后面的服务器?,但我不明白如何创建tcp隧道!

共有1个答案

郑向阳
2023-03-14

端口转发是最好的方式。

您不在终端中进行端口转发,因为您可以通过键入ssh命令手动连接到第二节。虽然您可以使用JSch来实现自动化,但它并不是尝试模拟人类的一种真正可靠的方法。如果您想用JSch替换第一个ssh(terminal)步骤,出于同样的原因,您不想在第二个步骤中使用ssh。你链接到的问题中的公认答案也阻止了你尝试这样做。当一切顺利时,它可能会起作用。但是一旦出现任何问题,你就会遇到自动处理它的困难。例如,您很难自动化第二台服务器的主机密钥验证。

SSH隧道是端口转发。但是,可能提到的proxyssh(似乎不再存在)在内部没有打开本地端口,而是在第二个会话中直接使用“端口转发”通道。但这是一种太复杂而难以实现的方法。坚持使用简单的端口转发。

 类似资料:
  • 问题内容: 我的目的是连接到位于防火墙后面的服务器(主机)。我可以通过连接到网络中的另一台服务器(隧道)然后通过SSH到该服务器来访问此服务器。但是,我无法通过JSch实现相同的方案。 我无法为此编写以下代码。如果我在这里做任何愚蠢的事情,请告诉我。 上面的代码在行中给出了以下异常。 问题答案: jsch上的代理设置允许您连接到远程端上 正在运行的 代理服务器。一个在远程端将 不 被视为一个代理。

  • 我在远程服务器上设置了一个自动日志检查的设置。我创建了类似这样的方法,使用exec命令跟踪日志… 如何运行mysql命令将结果返回到eclipse终端?

  • 我想使用RazorSQL连接到我的数据库,该数据库正在远程服务器上运行。我使用以下命令在本地主机上创建SSH隧道: 我通过RazorSQL的GUI配置连接,将本地主机指定为主机,将1111指定为端口。当我单击“Connect”(连接)时,出现以下错误消息: 其中是远程服务器的IP地址。 此外,我不允许更改我的pg_hba的内容。conf文件。这就是目前的情况: 是否可以使用我当前的设置,在不修改服

  • 我试图在unix中使用JSCHSSH类(com.jcraft.jsch)执行一些工具。我的工具有一个选择菜单。我需要转到工具所在的文件夹,执行它并选择请求的选项。在每个命令之后,(cd,execute,…)我希望检查输出并检查状态代码(0/1)。我有下面的代码按预期执行它,但在这段代码中,我找不到一种方法来检查每个命令后的输出。 我无法找到一种方法,但我怎么能分开的命令,并打印他们一个接一个(在同

  • Infact挂起。如果我删除多级ssh,一切都很好!我做错什么了吗?? 我从以下方面得到了一些提示:Java中的多级SSH登录和使用JSch的多个命令,但我无法运行代码。

  • 问题内容: 我希望能够远程连接到公开了JMX的Java服务,但是该服务已被防火墙阻止。我尝试使用ssh本地端口转发,但是连接失败。看一下wireshark,看来当您尝试与jconsole连接时,它想在连接到受防火墙阻止的端口9999后通过一些临时端口进行连接。 有什么方法可以使jconsole仅通过9999连接或使用代理?是这篇文章仍然是最好的解决办法?还是我错过了什么? 问题答案: 有什么方法可