У меня есть еще более строгий подход к предоставлению привилегий root на моем сервере, что может быть интересно для таких параноиков, как я. Будьте осторожны в том, что вы делаете и в каком порядке, иначе вы можете получить систему, к которой у вас нет прав root.
- Создайте определенную группу
sugroup
, членам которой будет разрешено стать пользователем root и разрешить только аутентификацию по ключу для этой группы, поместив следующие строки в конце sshd_confid:
Match Group sugroup
PasswordAuthentication no
- Поместите команду
auth required pam_wheel.so group=sugroup
в /etc/pam.d/su
. Это может быть уже там, и вам просто нужно раскомментировать. Это запрещает root-доступ всем пользователям, не входящим в sugroup.
- Выберите надежный пароль root :)
- Проверьте, работает ли ваш новый метод аутентификации, и только если:
- Запретить прямой вход в систему через ssh с помощью
PermitRootLogin no
in /etc/ssh/sshd_config
.
При использовании этой конфигурации необходимо использовать ключ аутентификации и пароль, чтобы стать пользователем root. Я настроил свой сервер следующим образом, так как я предпочитаю не иметь прямого корневого доступа через ssh, независимо от способа аутентификации.
service ssh restart
на сервере, а затем на клиенте, с которым пытался подключиться без ключаssh -o PreferredAuthentications=password -o PubkeyAuthentication=no root@host
и действительно не смог войти с паролем, но смог с ключом для пользователя root.