
Я постараюсь быть предельно конкретным в вопросе. Пожалуйста, извините за мой язык, если он непонятен.
Допустим, у меня есть Unix-система 'A', откуда я хочу параллельно подключаться по ssh к другим серверам и выполнять некоторые задачи. Как узнать, сколько параллельных ssh разрешено на сервере 'A'?
решение1
В вашем конкретном случае это зависит от некоторых факторов (оборудование и ОС).
Вам нужно проверить limits
набор на вашей машине (вы ничего не сказали об архитектуре).
Попробуйте проверить ulimit -a
и взглянуть, например, на ограничения open files
параметра (они даже относительно количества открытых сокетов).
Это ограничения, установленные для пользователя; вы можете взглянуть на /proc/sys/fs/file-max
(если вы на машине Ubuntu), чтобы посмотреть на общесистемные настройки этого параметра.
Помимо ограничений, установленных в системе, и ограничений вашего оборудования (насыщенность оперативной памяти и т. д.), клиент SSH не устанавливает явных ограничений (насколько мне известно).
Если вы настроили необходимые вам ограничения на клиентской машине, но не можете иметь больше SSH-подключений к одному и тому же серверу, попробуйте настроить следующий параметр на стороне сервера sshd
:
Вы можете настроить разрешенные параллельные сеансы в файле конфигурации /etc/ssh/sshd_config
, используя столько сеансов, сколько вам необходимо.
Следующий параметр должен подойти:
МаксСессий
Указывает максимальное количество сеансов открытой оболочки, входа или подсистемы (например, sftp), разрешенных для одного сетевого соединения. Клиенты, поддерживающие мультиплексирование соединений, могут устанавливать несколько сеансов. Установка MaxSessions в 1 фактически отключит мультиплексирование сеансов, тогда как установка в 0 запретит все сеансы оболочки, входа и подсистемы, но при этом разрешит пересылку. Значение по умолчанию — 10.
решение2
Нет никаких ограничений конкретно для ssh
. Могут быть ограничения на общее количество процессов, которые вам разрешены в системе 'A', но по моему опыту это редкость