Категория: Доступ и аутентификацияОбновлено 2026-10-27

Вход под root

Вход под root это прямой вход по SSH под учётной записью root, то есть администратора. Отключение прямого входа под root и переход на обычного пользователя с sudo это один из самых быстрых способов снизить ущерб от одной украденной учётной записи.

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

Почему прямой вход под root считают тревожным сигналом

У root нет никаких ограничений, поэтому один скомпрометированный сеанс равен полному захвату сервера. Любой автоматический скрипт подбора паролей в интернете сначала пробует имя пользователя "root", так как оно гарантированно существует почти на каждом Linux сервере.

Обычная альтернатива

В большинстве защищённых конфигураций создают именованную административную учётную запись, добавляют её в группу sudo и полностью отключают вход под root через SSH. Тому, кому нужны права root, они всё равно доступны через sudo, но только после аутентификации под своим именем, что оставляет след о том, кто и что делал.

Полный список настроек, закрывающих удалённый доступ, собран здесь: руководство по усилению защиты SSH.

Отключение прямого входа root это часть принципа минимальных привилегий; полный аудит пользователей и правил sudo описан в руководстве пользователи, sudo и минимальные привилегии.

Что разрешает каждое значение PermitRootLogin

Эта настройка не простой выключатель. Руководство sshd_config допускает четыре значения:

Практический вывод: значение по умолчанию не равно no. При prohibit-password любой ключ, оставшийся в authorized_keys у root, остаётся рабочим входом, поэтому неизвестные ключи там важны. Ваш дистрибутив или образ провайдера также может задавать значение, отличное от встроенного, поэтому проверьте, что действует на самом деле:

sudo sshd -T | grep -i permitrootlogin
sudo cat /root/.ssh/authorized_keys

Используйте forced-commands-only только при настоящей потребности автоматизации, например для одной задачи резервного копирования, и сочетайте его с ограничениями ключа, описанными в статье про authorized_keys.

Как отключить вход под root, не потеряв доступ

Риск не в самой настройке, а в порядке действий. Выполняйте шаги, не закрывая текущую сессию:

  1. Создайте именную учётную запись администратора, добавьте в неё свой открытый ключ и выдайте sudo через группу администраторов вашего дистрибутива (обычно sudo или wheel).
  2. Откройте новый терминал, войдите под этой записью и выполните sudo -l, чтобы убедиться, что права работают.
  3. Выясните, что ещё входит как root, чтобы не сломать автоматизацию: sudo journalctl -u ssh | grep 'Accepted .* for root'. Перенесите эти задачи на служебные учётные записи с ограниченными ключами.
  4. Задайте PermitRootLogin no, выполните sudo sshd -t, перезагрузите sshd и подтвердите результат командой sudo sshd -T | grep -i permitrootlogin.
  5. Из третьего терминала попробуйте ssh root@your-server. Вход должен быть отклонён.

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

Связанные термины: SSH, sshd_config, UID 0, Атака подбором, Принцип минимальных привилегий, PermitRootLogin, AllowUsers, sudo (выполнение команд с правами root).

Часто задаваемые вопросы

Полностью ли убирает root-доступ отключение входа под root?

Нет. Root всё ещё существует и доступен локально или через sudo с авторизованной учётной записи, отключается только прямой вход под root через удалённую SSH-сессию.

Достаточно ли просто задать сложный пароль для root?

Это снижает один риск, но не решает основную проблему, так как общий вход под root всё равно не оставляет записи о том, кто выполнил конкретное действие. Именованная учётная запись с sudo безопаснее по умолчанию.

Какая настройка Linux отвечает за это?

Директива PermitRootLogin в sshd_config, обычно устанавливается в "no" или "prohibit-password" на защищённом сервере.

PermitRootLogin prohibit-password это то же самое, что no?

Нет. Значение блокирует для root вход по паролю и keyboard-interactive, но открытый ключ в authorized_keys у root продолжает работать. Задайте no, если никто не должен входить как root удалённо вообще.

Сломает ли отключение входа root резервное копирование или развёртывание?

Может, если эти задачи подключаются как root. Сначала найдите в журнале SSH успешные входы root, затем переведите каждую задачу на отдельную учётную запись с ограниченным ключом или используйте forced-commands-only для одной фиксированной команды.

Хотите увидеть, в каком состоянии ваш сервер?

Запустите бесплатную read-only проверку сервера или откройте Security Lab и посмотрите цикл обнаружение, сдерживание, восстановление, проверка в действии.

Получить бесплатную проверку сервераОткрыть Security Lab