Как включить вход по SSH с правами root в Linux с помощью SSH-ключей

Включите вход по SSH от имени root с помощью открытого ключа, добавив его в файл конфигурации root authorized_keys, установив параметр , проверив конфигурацию OpenSSH и перезагрузив службу. Это позволит root входить по ключу, блокируя при этом аутентификацию по паролю и интерактивную клавиатурную аутентификацию. См. руководство по sshd_configPermitRootLogin prohibit-password в OpenSSH для определения параметров.

Терминал, подключающийся к серверу Linux под учетной записью администратора по SSH.
На этом изображении терминала показано приглашение к подтверждению доверия; перед его принятием проверьте фактический отпечаток хоста по доверенному каналу.

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

Перед редактированием SSH-сервера

  • Подключитесь к системе с помощью учетной записи, которая может запускать sudoOpenSSH Server, и убедитесь, что он запущен.
  • Подготовьте пару SSH-ключей для клиента. Скопируйте открытый ключ (обычно это файл с расширением .pub); никогда не передавайте закрытый ключ третьим лицам.

Не следует устанавливать пароль root исключительно для SSH-доступа по ключу. Заблокированный пароль и доступ по открытому ключу — это разные вещи, хотя политики учетных записей дистрибутива могут влиять на вход в систему. В руководстве по управлению пользователями Ubuntu объясняется, что блокировка пароля сама по себе не отключает доступ по существующим SSH-ключам.

Включить вход по SSH с правами root на основе ключей.

1. Подключитесь как обычный администратор.

В терминале на вашем клиентском компьютере подключитесь к учетной записи, которая уже имеет права sudo:

ssh admin@server.example.com

Замените примерные значения. Перед принятием проверьте отпечаток нового ключа хоста по доверенному каналу.

2. Добавьте свой открытый ключ в учетную запись root.

На сервере создайте для пользователя root каталог SSH с ограниченными правами доступа, затем отредактируйте список авторизованных ключей:

sudo install -d -m 700 /root/.ssh
sudoedit /root/.ssh/authorized_keys

Вставьте полный открытый ключ в одну строку и сохраните. Никогда не вставляйте закрытый ключ и сохраните все существующие записи. Затем ограничьте права собственности и разрешения:

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys
После создания корневого SSH-каталога открывается редактор терминала, работающий с файлом authorized_keys пользователя root.
Добавьте полный открытый ключ одной строкой в ​​файл authorized_keys пользователя root; показанный здесь сокращенный ключ является лишь визуальным заменителем.

3. Настройте политику авторизации для пользователя root.

Откройте конфигурацию сервера с помощью текстового редактора, например:

sudoedit /etc/ssh/sshd_config

Найдите активную PermitRootLoginдирективу и измените её на:

PermitRootLogin prohibit-password

Это безопаснее, чем PermitRootLogin yes, который может разрешать использование паролей root. Не добавляйте повторяющуюся директиву: OpenSSH использует первое полученное значение, и дистрибутивы могут загружать Includeфайлы. Отредактируйте активную настройку и оставьте несвязанные параметры аутентификации без изменений.

Конфигурация сервера OpenSSH, показывающая, что параметр PermitRootLogin установлен в значение prohibit-password.
Выделенная строка управляет правами root; остальные параметры аутентификации являются отдельными настройками и должны соответствовать вашей политике.

4. Перед применением проверьте конфигурацию.

Сначала проверьте наличие синтаксических ошибок:

sudo sshd -t

Отсутствие вывода означает, что проверка синтаксиса пройдена успешно. Исправьте все обнаруженные ошибки перед перезагрузкой. Проверьте фактическое значение с помощью:

sudo sshd -T | grep permitrootlogin

Убедитесь, что в выводе указано permitrootlogin prohibit-password. Если нет, проверьте включенные файлы и соответствующие Matchблоки. В руководстве по sshd это определяется -tкак проверка синтаксиса и -Tкак отчет об эффективной конфигурации.

В терминале выполняется проверка конфигурации sshd и выводится эффективное значение PermitRootLogin.
Перед применением изменений выполните команду sshd -t, затем проверьте действующие настройки входа в систему от имени root.

5. Перезагрузите службу SSH.

Используйте имя службы вашего дистрибутива. В Ubuntu и Debian обычно используется:

sudo systemctl reload ssh.service

Fedora, RHEL и многие другие дистрибутивы обычно используют:

sudo systemctl reload sshd.service

Если функция перезагрузки не поддерживается, используйте systemctl restartсоответствующее имя службы и оставьте исходную сессию открытой. В руководстве по OpenSSH в Ubuntu также рекомендуется запустить эту команду sshd -tперед перезапуском.

Перезагрузка службы OpenSSH в терминале Linux на Ubuntu или Debian.
После того, как конфигурация пройдет проверку синтаксиса, перезагрузите демон SSH; имена служб различаются в зависимости от дистрибутива.

6. Проверьте доступ с правами root со второго терминала.

Откройте отдельный терминал на клиентском компьютере и укажите закрытый ключ, соответствующий установленному вами открытому ключу:

ssh -i ~/.ssh/id_ed25519 root@server.example.com

Замените путь к ключу и имя хоста. Проверьте наличие запроса на ввод ключа хоста и убедитесь, что сессия открывается от имени root. Если проверка не удалась, выполните поиск и устранение неисправностей в исходной сессии и оставьте ее открытой до восстановления доступа.

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

Устранение неполадок, связанных с отказом в доступе к системе от имени root.

Для этого Permission denied (publickey)убедитесь, что полный открытый ключ находится в папке /root/.ssh/authorized_keysи клиент использует соответствующий ему закрытый ключ. Перепроверьте права собственности и разрешения:

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys

Также проверьте фактическое PermitRootLoginзначение, правила AllowUsers/ DenyUsers, журналы сервера и оболочку входа root. Избегайте изменения параметра в yesкачестве ярлыка; это может расширить список разрешенных методов аутентификации для root.

В терминале Linux выполняется исправление прав собственности и ограничений доступа к файлам ключей SSH root.
Каталог SSH, доступный пользователю root, должен принадлежать пользователю root, с правами доступа 700 для самого каталога и 600 для файла authorized_keys.

Отключайте вход по SSH от имени root, когда он вам больше не нужен.

Чтобы отключить прямой доступ по SSH от имени root, измените директиву active следующим образом:

PermitRootLogin no

Запустите sudo sshd -tи перезагрузите нужную службу. Это заблокирует прямой SSH-доступ от имени root, но оставит доступной учетную запись администратора. Одной лишь блокировки паролем может быть недостаточно для блокировки входа в систему с помощью открытого ключа root.

В конфигурации сервера OpenSSH установлено значение PermitRootLogin no, после чего выполняются команды проверки и перезагрузки службы.
Установите для параметра PermitRootLogin значение «нет», выполните проверку и перезагрузите страницу. Другие отображаемые параметры аутентификации являются отдельными и не требуются для этого изменения, предназначенного только для root-прав.

Для получения более подробной информации обратитесь к руководству по настройке OpenSSH и документации по SSH для Ubuntu Server.

Оставить комментарий

Как установить Linux Mint Debian Edition 5 «Elsie» с USB-накопителя

Как установить Linux Mint Debian Edition 5 «Elsie» с USB-накопителя

Загрузите и проверьте архивный ISO-образ LMDE 5, создайте загрузочный USB-накопитель и выберите безопасные параметры установки. Поддержка Elsie прекращена; ознакомьтесь с текущей версией LMDE.

Как играть в DiRT Rally на Linux: настройка Steam и исправления в Proton.

Как играть в DiRT Rally на Linux: настройка Steam и исправления в Proton.

Узнайте, как играть в DiRT Rally на Linux, если у вас уже есть эта игра в Steam: установите нативную сборку, запустите её и используйте Proton только в качестве резервного варианта.

Как играть в Don't Starve Together на Linux

Как играть в Don't Starve Together на Linux

Установите версию Don't Starve Together для Linux через Steam, создайте мир или присоединитесь к друзьям, следуя этим шагам по настройке и устранению неполадок.

Как играть в Squad на Linux с помощью Steam Proton

Как играть в Squad на Linux с помощью Steam Proton

Установите Squad на Linux с помощью Steam Play и Proton, установите игру, выберите инструмент совместимости и устраните проблемы с античитерством.

Как создать загрузочный USB-накопитель с Windows 11 в Linux

Как создать загрузочный USB-накопитель с Windows 11 в Linux

Создайте установочный USB-накопитель Windows 11 для Linux с помощью Ventoy: получите официальный ISO-образ, безопасно установите Ventoy, скопируйте образ и загрузите целевой компьютер.

Как установить Wireshark на Linux: Ubuntu, Fedora, Arch и другие операционные системы.

Как установить Wireshark на Linux: Ubuntu, Fedora, Arch и другие операционные системы.

Установите Wireshark на Ubuntu, Debian, Fedora, Arch или openSUSE, используя актуальные команды для работы с пакетами, а затем безопасно настройте захват пакетов в реальном времени.

Как играть в It Takes Two на Linux с помощью Steam Proton

Как играть в It Takes Two на Linux с помощью Steam Proton

Узнайте, как играть в It Takes Two на Linux с помощью Steam Proton, установить версию Steam, включить совместимость, настроить кооперативный режим и устранить проблемы с запуском.

Как играть в Slay the Spire на Linux: установка и запуск через Steam

Как играть в Slay the Spire на Linux: установка и запуск через Steam

Установите Steam на Linux, получите нативную сборку Slay the Spire для Linux из своей библиотеки и запустите её. Включает практические шаги для решения распространенных проблем при запуске.

Как установить Devuan Linux с загрузочного USB-накопителя

Как установить Devuan Linux с загрузочного USB-накопителя

Установите Devuan Excalibur с загрузочного ISO-образа для рабочего стола. Проверьте правильность загрузки, создайте загрузочный USB-накопитель, защитите существующие разделы и завершите установку с помощью Refracta Installer.

Как играть в The Forest на Linux с помощью Steam Proton

Как играть в The Forest на Linux с помощью Steam Proton

Установите Steam на Linux, включите Steam Play и используйте Proton для загрузки и запуска игры The Forest, с настройкой совместимости для каждой игры отдельно, если она не запускается.