Как разрешить пользователю root заходить по SSH в системах Linux

Обновлено Обновлено: Опубликовано Опубликовано:

Тематические термины: SSH, Linux, Ubuntu.

По умолчанию, в некоторых системах Linux (например, Debian/Ubuntu, Rocky и поздних CentOS) для суперпользователя root вход по SSH с использованием пароля не работает. При попытке подключиться можно увидеть сообщение «access denied» или «permission denied». Такая настройка необходима для обеспечения большей безопасности системе. Однако, если требуется предоставить возможность подключаться по SSH от пользователя root, необходимо выполнить нижеописанное.

* Инструкция подойдет для большинства UNIX-систем.

С использованием сертификата

После установки система настроена таким образом, чтобы можно было подключиться под пользователем root с использованием сертификата. Рассмотрим, как это сделать.

На любом компьютере с Linux сгенерируем пару ключей командой:

ssh-keygen -t ed25519

В домашней директории:

ls -l ~/.ssh/

... будет создано 2 файла — id_ed25519.pub и id_ed25519. Содержимое файла id_ed25519.pub смотрим и фиксируем:

cat ~/.ssh/id_ed25519.pub

Идем на наш целевой компьютер Linux (к которому будем подключаться по SSH). Создаем каталог:

mkdir /root/.ssh

И файл:

vi /root/.ssh/authorized_keys

Вставляем в него содержимое файла id_ed25519.pub.

Теперь с компьютера, где были созданы сертификаты можно зайти на компьютер с Ubuntu:

ssh root@<адрес компьютера Ubuntu>

Используя ключ из файла id_ed25519 можно подключиться к нашему компьютеру Linux без пароля. Можно скопировать его на все компьютеры, откуда нужно осуществлять вход, но для большей безопасности с каждого компьютера лучше сгенерировать свою пару ключей.

По паролю

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

passwd root

После нажатия Enter вводим дважды пароль.

Теперь открываем настройки SSH-сервера:

vi /etc/ssh/sshd_config

и редактируем параметр PermitRootLogin — задаем значение yes:

PermitRootLogin yes

* если параметр закомментирован, снимаем комментарий.
** по умолчанию, значение может быть without-password или prohibit-password — оно разрешает вход для root средствами GSSAPI (не парольной аутентификации), например, смарт-карты или отпечатка пальца.

Перезапускаем ssh server:

systemctl restart ssh || systemctl restart sshd

или в старых версиях без systemd:

service ssh restart || service sshd restart

Можно подключаться.

Читайте также

1. Как использовать команду SCP в UNIX без пароля.

2. Настройка быстрого подключения по SSH в Linux.

3. Настройка и использование Fail2ban на Linux.

# Linux # Ubuntu # UNIX # Безопасность # CentOS
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет