Доступ к серверу по ssh только для определённой группы

SSH позволяет ограничивать доступ к серверу только для пользователей, состоящих в определённой группе. Не являясь её членами, другие пользователи не смогут зайти на сервер по ssh. Это удобная возможность выдавать права доступа только тем пользователям, кому это действительно необходимо.

Доступ к серверу по ssh только для определённой группы

В начале необходимо создать группу, члены которой будут авторизованы для работы с ssh. Такой GID группы указывается для того, чтобы не портить равенство UID/GID для новых, создаваемых в системе пользователей.

# addgroup --gid 9999 whocanusessh

Затем в конфигурационном файле /etc/ssh/sshd_config прописываем параметр.

AllowGroups whocanusessh

После чего в обязательном порядке добавляем root в эту группу:

# adduser root whocanusessh

Если этого не сделать, то и root не сможет зайти на сервер по этому протоколу.

Напоследок перезапускаем ssh командой service ssh restart.

Как это работает. Например, для редактирования файлов сайта example.com по sftp необходимо выдать доступ пользователю webmaster. Добавляем его в группу, аналогично добавлению root. Выполняем необходимые операции.

Когда работа закончена, просто удаляем пользователя из группы.

# deluser webmaster whocanusessh

Попытки аутентификации пользователей, не находящихся в выделенной группе, будут отклонены сервером.

P.S. Конечно, можно было бы указывать в конфигурационном файле ssh каждого пользователя в отдельности, но это займёт куда больше времени, чем добавление пользователя в группу, или удаление из неё. :)