Попытка убедить автономного sshd
демона ограничить количество сеансов чревата лазейками. Такие вещи, как MaxSessions
ограничение, ограничивают то, о чем говорит ОП. И sshd
игнорирует limits.conf
в linux (аналогично login.conf
во FreeBSD), если вы не настроите все правильно для маршрутизации всех входящих сессий через PAM и не будете использовать соответствующим образом настроенный модуль PAM для проверки таких вещей, как limit.conf. Трудно заставить его работать правильно.
С другой стороны, если вы не начинаете sshd
как отдельный демон, вы можете использовать ограничивающие функции в «вещи», которая появляется sshd
по требованию.
Например, inetd
и xinetd
имеют функцию ограничения соединения (которая по умолчанию обычно не устанавливает никаких ограничений на количество разветвленных дочерних элементов). В классике inetd
это называется «Макс-ребенок». С помощью xinetd
найдите instances
ручку настройки. Например, inetd
стиль:
ssh stream tcp nowait/3 root /usr/sbin/sshd sshd -i -4
Это ограничивает количество одновременных соединений SSH до 3.
Для тех, кто так склонен, systemd
может заменить функцию inetd
, и я считаю, что есть способ ограничить количество экземпляров службы. Упражнение оставлено читателю (или добавьте комментарий с подробностями!).