CH-J Server Managerуправление серверами через SSH
Меню
Все руководства и статьи →

Пользователи SSH и доступ root: безопасная настройка в Linux

Создайте учётную запись администратора, установите её ключ, проверьте sudo и лишь затем ограничьте вход root, не потеряв доступ.

Цель и порядок действий

Администраторам следует входить под собственными учётными записями с помощью ключей и при необходимости использовать sudo: это позволяет записывать, кто и что сделал, и ограничивает подбор паролей. Порядок важен: сначала настройте новый способ доступа, проверьте его и только в конце ограничьте root. Сохраните доступ к консоли провайдера на случай неполадок.

Создайте учётную запись и установите ключ

Создайте учётную запись, добавьте её открытый ключ и задайте строгие права доступа, поскольку sshd игнорирует файлы ключей, доступные другим на запись. Никогда не копируйте закрытый ключ на сервер. В системах семейства Red Hat используйте группу wheel вместо sudo.

sudo adduser admin1
sudo usermod -aG sudo admin1
sudo install -d -m 700 -o admin1 -g admin1 /home/admin1/.ssh
sudo install -m 600 -o admin1 -g admin1 ~/admin1.pub /home/admin1/.ssh/authorized_keys

Проверьте вход из второго окна

Оставьте текущий сеанс открытым и проверьте новый вход из другого терминала. Само по себе членство в группе не доказывает, что sudo работает: это определяют правила в sudoers. Подтвердите это командой sudo -l.

ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 admin1@server.example
sudo -l
sudo -v

Ограничьте вход root

PermitRootLogin prohibit-password разрешает root входить только по ключу, а значение no полностью блокирует вход root по SSH. Поместите изменение в отдельный файл в /etc/ssh/sshd_config.d. Для большинства параметров sshd использует первое найденное значение, поэтому файл, прочитанный раньше, может иметь приоритет. Поэтому проверяйте фактически применяемое значение командой sshd -T, а не чтением файлов. Проверьте новый вход, прежде чем закрывать старый сеанс.

echo 'PermitRootLogin no' | sudo tee /etc/ssh/sshd_config.d/50-root.conf
sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -iE '^(permitrootlogin|passwordauthentication) '

Вход по паролю и чего следует избегать

Отключайте PasswordAuthentication лишь после того, как у каждой нужной вам учётной записи будет проверенный ключ. Не используйте одну учётную запись на нескольких человек: иначе нельзя отозвать доступ одного из них, не затронув остальных. sudo без пароля для всей учётной записи также означает, что одного украденного ключа достаточно для полного контроля.

Учётные записи в CH-J Server Manager

Модуль Users управляет учётными записями, группами, ключами SSH и доступом по SSH через активный сеанс SSH. Он никогда не изменяет sudoers и не задаёт NOPASSWD, а фактическое состояние sudo определяет по sudo -l. Учётную запись root удалить нельзя; разрешение входа root по паролю требует дополнительного подтверждения, при этом рекомендуется вход только по ключу. Изменение доступа по SSH проверяется с помощью sshd -T и нового входа по SSH; если проверка не пройдёт или вы потеряете доступ, предыдущая конфигурация восстановится автоматически. Без sudo модуль доступен только для чтения.

Подробная документация

OpenSSH: sshd_config →

man: sudoers →

Биометрическое разблокирование и безопасность →