"Session"vs"Channel"(JSch和sshd)

Sub*_*evn 6 ssh jsch sshd

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

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

所以我看了sshd_config,并发现他们有一个MaxSessions属性,这在这里非常有用 - 但它让我想知道,是不是MaxChannelsPerSession属性,或者我对JSch称之为" channel"和什么是实际的SSH频道.

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

(最重要的是,我应该在网站的不同位置发布这个吗?这与编程有关,但我猜是系统管理员的一部分......)

ymn*_*mnk 7

我是JSch的作者.

sshd_config上的"MaxSessions"属性将在OpenSSH的sshd上被识别为"MaxChannelsPerSession".

  • 稍作跟进:会话/通道线程安全吗?我可以创建一个全局持有的会话(或传递的引用),然后在不同的线程中创建通道而不用担心,或者我应该将它全部放在同步块中? (7认同)