Есть ли ограничение на количество открытых каналов за сеанс в JSch?

Есть ли ограничение на количество открытых каналов за сеанс в JSch? Каналы, которые я пытаюсь открыть, имеют тип «ChannelShell».

Я получаю «com.jcraft.jsch.JSchException: канал не открыт». исключение, когда я пытаюсь открыть одиннадцатый канал, то есть канал[10]. Означает ли это, что я могу иметь до 10 каналов за сеанс?

P.S. Я не понимаю, как соответствовать стандартам качества stackoverflow.


person Martin Klosi    schedule 04.08.2011    source источник


Ответы (2)


У sshd OpenSSH было такое ограничение, позволяющее одновременно разрешать только 10 каналов, а недавно его sshd добавил флаг «MaxSession» в sshd_config.

Обратитесь к "man sshd_config",

 MaxSessions
         Specifies the maximum number of open sessions permitted per net-
         work connection.  The default is 10.
person ymnk    schedule 16.06.2012
comment
Jsch — это полная реализация SSH2, а не просто оболочка для собственного ssh в Linux. Таким образом, это не зависит напрямую от информации sshd_config или любого другого установленного пакета ssh. - person Prometheus; 01.06.2016

Не должно быть ограничений (кроме доступной памяти/количества потоков в вашей виртуальной машине, Integer.MAX_VALUE и того, что поддерживает сервер).

Кажется, я недавно видел подобную ошибку (правда, с одним каналом) - причина была в каком-то состоянии гонки, и она была решена в последней версии (0.1.45-RC4, ссылка из списка рассылки).

Попробуйте заменить файл jsch.jar на последний и проверьте, не исчезла ли проблема. (Похоже, что 0.1.45-RC5 является последней. ) Если это все еще происходит, попробуйте создать минимальный пример, чтобы мы могли его воспроизвести.

person Paŭlo Ebermann    schedule 05.08.2011
comment
Могу ли я получить только .jar откуда-нибудь? не могу понять как импортировать классы - person Martin Klosi; 06.08.2011
comment
ну, я прочитал, что это такое, и... Думаю, пока я просто буду генерировать больше сессий по мере необходимости. использование sessionNeeded = (необходимо каналов/10); if(channelsNeeded%10!= 0) sessionNeeded++; когда я закончу, если у меня будет еще немного времени, я смогу вернуться и попытаться выяснить суть этого. - person Martin Klosi; 08.08.2011