Защита SSH: запрет входа root по паролю (PermitRootLogin)
Угроза подбора root-пароля
Пользователь root обладает неограниченными правами. Открытая возможность подбора пароля к root по SSH приводит к тому, что при слабом пароле сервер взламывается ботнетами за считанные часы.
Режимы директивы PermitRootLogin
| Значение | Уровень безопасности | Поведение |
|---|---|---|
| yes | Опасно | Разрешен вход под root по любому паролю |
| prohibit-password | Рекомендуется | Вход под root только по цифровому SSH-ключу |
| no | Максимальный | Прямой вход под root запрещен полностью |
Настройка безопасного режима SSH
- Убедитесь, что у вас настроен вход по SSH-ключу и сессия не оборвется!
- Открываем конфигурацию демона SSH:
sudo nano /etc/ssh/sshd_config - Находим параметр PermitRootLogin и устанавливаем:
PermitRootLogin prohibit-password(Если требуется полностью запретить вход root, укажите:
PermitRootLogin no). - Проверяем синтаксис конфига на ошибки:
sudo sshd -t - Перезапускаем службу SSH:
sudo systemctl restart ssh
Критически важно: Не закрывая текущее окно терминала, откройте второе новое окно и проверьте успешность подключения.
Частые вопросы (FAQ)
Что означает prohibit-password (without-password)?
Это означает, что войти под root можно только предъявив приватный SSH-ключ. Ввод обычного пароля блокируется.
Что делать, если команда sshd -t выдала ошибку?
Не перезапускайте SSH! Исправьте указанную строку в /etc/ssh/sshd_config, иначе сервер заблокирует доступ.
Как полностью отключить пароли для всех пользователей?
Установите директиву PasswordAuthentication no в sshd_config.
Как зайти под root, если стоит PermitRootLogin no?
Подключитесь под обычным sudo-пользователем и выполните команду sudo -i.