【问题标题】:Open channel on ssh Server在 ssh 服务器上打开通道
【发布时间】:2017-09-24 04:10:00
【问题描述】:

如何使用来自 sshserver 的 apache sshd 打开连接到已连接 ssh 客户端的“shell”通道。 RFC 4254 提及

When either side wishes to open a new channel, it allocates a local number for the channel

这意味着服务器也可以打开一个通道到客户端。

但我在org.apache.sshd.server.session.ServerSession.. 上没有看到任何 API?我错过了什么..?我的要求是从 sshserver 异步向 sshclient 发送消息。

【问题讨论】:

    标签: java apache shell sshd


    【解决方案1】:

    SSH2 协议被设计为可扩展的,以防出现类似的用例。但目前还不是这样,没有可以从服务器端启动的通道。

    因此,即使有这样的请求,在大多数客户端中也是无效的,正如您在搜索OpenSSH code时看到的那样:

    • packet_start(SSH2_MSG_CHANNEL_OPEN); 从客户端创建一个新频道
    • dispatch_set(SSH2_MSG_CHANNEL_OPEN, &server_input_channel_open); 在服务器中为此消息分配处理程序。

    反之亦然,所以它会被忽略或导致错误。

    【讨论】:

    • 谢谢@Jakuje。那么,这是否意味着 OpenSSH 不符合 RFC 呢?如果不支持来自服务器的异步消息传递,那么保持从客户端打开一个专用于此目的的通道是否是个好主意...?您对优化的解决方案有何建议?
    • 没有。 RFC 广泛讨论了可能性,其他 RFC 指定了通道类型。从可用性和安全性的角度来看,从服务器打开它们都没有意义。
    • 保持一个专门用于此目的的客户端打开通道是否是个好主意...?
    • 如果它可以为您解决问题,那么它是一个选择。
    • 希望它能解决,我会试试看。感谢您的时间@Jakuje。
    猜你喜欢
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2020-09-30
    • 1970-01-01
    相关资源
    最近更新 更多