Как разрешить root-вход по SSH в Linux (по ключу и по паролю)
По умолчанию в Debian/Ubuntu, Rocky и поздних CentOS вход root по SSH с паролем запрещён: при попытке подключения — access denied или permission denied. Это сделано для безопасности. Если вход root нужен, ниже — два способа.
Инструкция подходит для большинства UNIX-систем.
С использованием сертификата
После установки обычно уже можно войти под root по ключу. Разберём порядок.
На любом Linux-компьютере генерируем пару ключей:
ssh-keygen -t ed25519
В домашней директории появятся два файла:
ls -l ~/.ssh/
id_ed25519.pub (публичный) и id_ed25519 (приватный).
cat ~/.ssh/id_ed25519.pub
Скопируйте содержимое.
На целевом сервере:
mkdir -p /root/.ssh
vi /root/.ssh/authorized_keys
Вставьте содержимое id_ed25519.pub.
Подключаемся:
ssh root@<IP-сервера>
Вход по ключу без пароля. Для безопасности лучше генерировать отдельную пару ключей на каждом клиентском компьютере.
По паролю
Задаём пароль root:
passwd root
Вводим пароль дважды.
Правим конфигурацию SSH-сервера:
vi /etc/ssh/sshd_config
Параметр PermitRootLogin приводим к:
PermitRootLogin yes
Если параметр закомментирован — раскомментируйте.
По умолчанию значение может быть without-password или prohibit-password — оно разрешает вход root только средствами GSSAPI (не парольной аутентификации): смарт-карта, отпечаток пальца и т. п.
Перезапускаем SSH-сервер:
systemctl restart ssh || systemctl restart sshd
В старых системах без systemd:
service ssh restart || service sshd restart
Можно подключаться.
Тонкости и подводные камни
- Безопасность — вход
rootпо паролю сильно повышает риск подбора; используйте ключи иfail2ban. prohibit-password— современный дефолт: вход root разрешён только по ключу/GSSAPI, но не по паролю.PermitRootLoginvsAllowUsers— если заданAllowUsers,rootдолжен быть в списке, иначе вход запрещён независимо отPermitRootLogin.PasswordAuthentication no— при отключённой парольной аутентификацииPermitRootLogin yesне поможет.- SELinux (RPM) — в некоторых системах нужно проверить контекст
~/.ssh/authorized_keys(restorecon). - Права —
authorized_keysдолжен принадлежатьroot, каталог.ssh— с правами700, файл —600. - Лучше не включать — для администрирования предпочтительнее обычный пользователь с
sudoи ключами.
Шпаргалка
# по ключу
ssh-keygen -t ed25519
mkdir -p /root/.ssh && vi /root/.ssh/authorized_keys # вставить id_ed25519.pub
# по паролю
passwd root
vi /etc/ssh/sshd_config # PermitRootLogin yes
systemctl restart ssh || systemctl restart sshd
Проверено на: Ubuntu 22.04/24.04/26.04, Debian 12, Rocky Linux 9.
Дата: Сентябрь 2026.