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