Categories: Шпаргалки

Как разрешить пользователю 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 .

admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

7 дней ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

7 дней ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

7 дней ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

7 дней ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

7 дней ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

7 дней ago