如何将两个不同的ssh连接连接到同一个ssh服务器

时间:2017-01-13 07:05:52

标签: android ssh jsch openssh

我正在开发一个连接两个远程设备的系统。我已经使用ssh进行整个通信。场景是这样的:

  • 两台设备都连接到具有公共IP的同一ssh服务器
  • 两个设备都在NAT内
  • 连接由两个设备启动

问题是两个连接都被视为不同的会话,我想与两个设备进行通信。

我正在使用JSch

另一个问题是我想在android中使用JSch并且不知道如何在android中集成和使用JSch示例文件(比如shell.java)

这两个设备已经建立了与服务器的连接,这意味着设置必须位于sshd(ssh服务器),即维护这两个经过身份验证的会话。 SSH服务器是否允许这样做?如果是,那怎么办呢?告诉我他们是否有任何其他方式来执行此操作,即连接不同网络中的两个远程设备,通过一个公共IP连接进行通信。

我正在使用OpenSSH服务器仅用于中继目的但不知道如何将来自一个会话的输入来回转发到另一个会话,即我不知道如何配置SSH服务器

1 个答案:

答案 0 :(得分:0)

您必须在服务器上构建一个“服务器”软件,以促进设备之间的通信。

您仍然可以使用SSH并通过SSH / JSch会话运行“服务器”软件(或与之通信)。

Relaying

您将使用"exec" channel使用JSch运行该软件。该软件将使用该平台上可用的机制与其他自身实例进行通信,例如使用named pipes

如果您想要一个非常简单的解决方案,您可以在一侧使用cat - > file,在另一侧使用tail -f file。尝试在两个SSH终端中获取想法。

Relaying

否则很难直接在设备之间进行通信。