在ssh服务器上打开通道

时间:2017-04-26 16:16:00

标签: java apache shell sshd

如何使用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。

1 个答案:

答案 0 :(得分:0)

SSH2协议的设计是可扩展的,以防有类似这样的用例。但事实并非如此,并且没有可以从服务器端启动的渠道。

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

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

没有其他类似的东西,所以它会被忽略或导致错误。