Как вы, наверное, знаете, мы можем использовать SSH в удаленной системе Linux с одним и тем же пользователем несколько раз.
Там же нет предела!
Вы можете просто открыть несколько окон Терминала (или несколько вкладок в Терминале) и инициировать несколько сеансов SSH из каждой вкладки под одной и той же учетной записью пользователя.
Что если вы хотите изменить или упорядочить это поведение пользователй?
Например, вы можете захотеть разрешить только один активный сеанс SSH для пользователя.
В этом кратком руководстве объясняется, как ограничить количество входов SSH на пользователя, группу или систему в Linux.
В большинстве дистрибутивов Linux существует файл под названием limit.conf, в котором вы можете определить максимальное количество одновременных сеансов SSH для пользователя или группы пользователей.
Если конкретный пользователь пытается использовать сессий SSH в системе больше, чем разрешено для входа по SSH, ему будет отказано в доступе.
Ограничение количества SSH сессий пользователя или группы на Linux
Файл limit.conf обычно находится в каталоге /etc/security/ в системах на основе RPM и DEB.
Перейдите в удаленную систему и отредактируйте файл /etc/security/limits.conf с помощью sudo или root-пользователя:
$ sudo nano /etc/security/limits.conf
Чтобы ограничить количество одновременных сеансов SSH для конкретного пользователя, например, itsecforu, добавьте в конце следующую строку:
itsecforu hard maxlogins 1
Где:
- itsecforu – Имя пользователя на моем сервере CentOS 8.
- maxlogins 1 – Максимальное количество сессий для этого пользователя. В моем случае это 1. Вы можете увеличить это значение, чтобы разрешить больше.
- hard – соблюдение жестких ограничений.
@mygroup hard maxlogins 1
Замените @mygroup на имя вашей группы.
В этом случае все пользователи mygroup не cмогут войти в систему через SSH более одного раза.
Если вы хотите ограничить сеансы SSH для всех пользователей (глобальных) в системе, добавьте следующую строку:
* hard maxlogins 1
Здесь звездочка означает глобальный параметр (то есть всех пользователей в системе).
После того, как вы определили максимальное количество сеансов SSH для пользователя / группы или всей системы, сохраните и закройте файл.
Теперь попробуйте подключить по SSH к системе одним и тем же пользователем более одного раза.
Вы увидите сообщение об ошибке, как показано ниже.
Too many logins for 'itsecforu'. Last login: Tue Feb 18 17:12:09 2020 from 192.168.225.37 Connection to 192.168.225.52 closed.
Как вы видите в приведенном выше выводе;
- Сначала я по SSH подключился к удаленному серверу CentOS 8 как пользователь root через SSH, и соединение было успешно установлено.
- Затем я открыл новую вкладку и SSH на том же сервере, что и обычный пользователь «itsecforu», и соединение прошло успешно.
- Наконец, я попытался подключиться по SSH к тому же серверу под тем же пользователем (т.е. itsecforu), и на этот раз соединение было отклонено. Пользователь «itsecforu» не может войти в систему SSH более одного раза. Поскольку его максимальное количество разрешенных сеансов SSH для этого пользователя составляет только один раз. Следовательно, SSH-соединение запрещено для этого пользователя.
Как ограничить общее количество сеансов SSH на систему
Чтобы ограничить общее количество активных соединений SSH на систему, добавьте следующую строку в файл /etc/security/limits.conf:
* hard maxsyslogins 1
Здесь maxsyslogins относится к максимальному количеству входов в систему, а не для пользователя или группы.
Попробуйте войти в систему через SSH, и вы не сможете получить доступ к системе больше, чем максимально допустимое число входов.
Обратите внимание, что это ограничение распространяется только на обычных пользователей.
Пользователь root может войти в систему через SSH любое количество раз.
Посмотрите также наши свежие статьи про ssh:
- 🐧 Как отозвать определенный ключ, используемый для входа в систему с OpenSSH
- 🔐 Как определить, какой ключ был использован для входа в систему с OpenSSH
- ❄️ Snowflake — это Linux SSH GUI, который вам нужен
- 🐧 Как возобновить частично переданные файлы по SSH Используя Rsync
- 🐧 Как разрешить доступ по ssh с пустыми паролями на Linux
- 👥 Как настроить SSH для ограничения пользователей / групп директивами allow и deny
- 🐧 Как отобразить сообщение перед аутентификацией по SSH