【问题标题】:Secure tunnel from SSH server to target host从 SSH 服务器到目标主机的安全隧道
【发布时间】:2018-09-16 23:24:38
【问题描述】:

我的 java 应用程序连接到 SSH 服务器并运行由 Jsch 的 ChannelExec 提供的第三方实用程序。然后,此应用程序将不安全/未压缩的文件传输到安装了 SSH 服务器的另一台服务器。

流程是:

JavaApplicationHost --> SSHServer1(运行第三方实用程序)--> SSHServer2

我希望这些 SSH 服务器之间的文件传输得到保护/压缩。但是,我不能使用任何平台相关的实用程序,例如 ssh 命令。我无法在这些 SSH 服务器上安装任何东西。我只是可以将 JSch 用于这些 SSH 服务器。

有没有办法通过 JSch 或任何其他替代方案来保护/压缩这些 SSH 服务器之间的通信?

提前致谢!

【问题讨论】:

  • 不,您不能使用 JSch(或其他任何东西)在服务器和另一台机器之间建立安全连接。

标签: jsch tunnel


【解决方案1】:

http://www.jcraft.com/jsch/examples/JumpHosts.java.html 有一个 Jsch 的跳转主机示例,它级联多个 JSch 会话。

流程可以是:

JavaApplicationHost --(JSchSession1)--> SSHServer1(第三方实用程序运行)--(JSchSession2)--> SSHServer2

如果我可以通过 JSchSession2 在这些 SSH 服务器之间创建另一个隧道,我将能够保护/压缩第 3 方应用程序。

我会在这里测试和更新。

谢谢!

【讨论】:

  • 但这不会为服务器 1 上的第 3 方实用程序创建安全连接。您必须在服务器 1 上安装使用 JSch 的 Java 应用程序才能为实用程序创建隧道。什么不符合您的要求。
  • 你好马丁!你说的对。跳转主机示例无济于事。据我了解,它总是在应用程序端创建本地端口转发。因此,我无法在 SSH 服务器之间创建 JSch 会话。如果我通过 JSsch 连接到 SSHServer1 并运行 ssh 客户端命令打开到 SSHServer2 的隧道,就可以了。那么,如果可以这样做,SSH 服务器可以在内部代表我这样做吗?谢谢!
  • 我不确定我是否理解您所说的 “SSH 服务器能否在内部代表我执行此操作” 的含义。您可以使用 JSch 在服务器 1 上执行 ssh 以创建到服务器 2 的隧道,如果这就是您的意思。
  • Martin,我的意思是,连接到 SSHServer1 并运行命令行 ssh 实用程序来打开到 SSHServer2 的隧道在技术上是可行的。由于这种可能性,SSHServers 上是否有一个功能可以自动调用它们来完成这项工作?例如,我使用 JSch,并且我想调用 OpenSSH 来创建到另一个 OpenSSH 的安全隧道,而无需运行命令行 ssh 命令。谢谢!
  • 不,没有这样的功能。
猜你喜欢
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 2012-10-02
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 2018-11-09
相关资源
最近更新 更多