“Session”vs“Channel”(JSch和sshd)

时间:2012-03-16 17:43:16

标签: ssh jsch sshd

我希望使用JSch将小文件(在未知时间和未知数量)从一台服务器移动到另一台服务器 - 不幸的是,我试图为每次转移打开一个会话,这很快就被轰炸了(因为MaxSessions是我猜的10?)。

然后我用JSch打开了一个会话(每个主机),并为每个动作创建了一个通道(一个发送会创建一个通道,放置文件,关闭通道),但我遇到了同样的事情(尝试时)要一次做10个或更多,我会得到拒绝连接,因为当另一个请求通过时,某些频道仍在关闭。)

所以我看了sshd_config并发现他们有一个MaxSessions属性在这里非常有用 - 但它让我感到疑惑,是不是有MaxChannelsPerSession属性,或者我对JSch的看法感到困惑调用“频道”,什么是实际的SSH频道。

我使用的是最新版本的JSch,截至20120316。

(最重要的是,我应该在网站上的其他地方发布这个吗?它与有点编程相关,但我想也是系统管理员的一部分......)

2 个答案:

答案 0 :(得分:6)

我是JSch的作者。

sshd_config上的

“MaxSessions”属性将在OpenSSH的sshd上被识别为“MaxChannelsPerSession”。

答案 1 :(得分:1)

仅为另一种选择:

为了传输文件,JSch提供ChannelSftp类。有了它,您可以仅使用一个通道(对于每个服务器)一个接一个地(甚至并行地)传输多个文件。

我不知道这是否会带来任何性能上的好处。