8

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

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

所以我查看了 sshd_config 并发现它们有一个 MaxSessions 属性,这在这里非常有用 - 但它让我想知道,是否没有 MaxChannelsPerSession 属性,或者我对 JSch 所谓的“感到困惑”通道”以及什么是实际的 SSH 通道。

我正在使用截至 20120316 的最新版本的 JSch。

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

4

2 回答 2

9

我是JSch的作者。

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

于 2012-03-17T00:43:27.940 回答
1

只是另一种选择:

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

不过,我不知道这是否会带来任何性能优势。

于 2012-09-30T18:15:52.607 回答