【问题标题】:how to connect two different ssh connections to same ssh server如何将两个不同的 ssh 连接连接到同一个 ssh 服务器
【发布时间】:2017-01-13 18:42:54
【问题描述】:

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

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

问题是两个连接都被视为不同的会话,我想让两个设备之间的通信成为可能。

我正在使用 JSch

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

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

我使用 OpenSSH 服务器只是为了中继目的,但不知道如何将输入从一个会话来回中继到另一个会话,即我不知道如何配置 SSH 服务器

【问题讨论】:

    标签: android ssh jsch openssh


    【解决方案1】:

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

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

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

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


    否则您几乎无法在设备之间直接通信。

    【讨论】:

    • 我使用 SSH 服务器只是为了中继目的,但不知道如何将输入从一个会话来回中继到另一个会话,即我不知道如何配置 SSH 服务器
    • 我怀疑您的 SSH 服务器是否可以配置为“将输入从一个会话中继到另一个会话”。虽然你还没有告诉我们你的 SSH 服务器是什么。
    • 再一次,一般来说,你必须编写一个服务器软件来进行中继。
    • 会话管理是任何应用程序的内部进程。 SSH 是一种安全的通信应用程序,除非它明确提供此功能,否则任何第三方应用程序都无法访问并操纵它们的加密会话。
    • 你不懂我。您可以在会话中运行“服务器软件”。
    猜你喜欢
    • 2012-03-07
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 2014-07-03
    • 2014-10-04
    • 2011-06-01
    • 2019-06-04
    • 2020-12-03
    相关资源
    最近更新 更多