Цель и порядок действий
Администраторам следует входить под собственными учётными записями с помощью ключей и при необходимости использовать 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 модуль доступен только для чтения.