После развёртывания свежего VPS на DigitalOcean с CentOS Stream 10 многие админы сталкиваются с ситуацией, когда по SSH можно подключиться только по ключу, а попытка входа по паролю выдаёт ошибку:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
Почему это происходит и как включить вход по паролю для root — разбираемся подробно.
🚫 Проблема
На новых образах DigitalOcean и CentOS 10 предустановлены жёсткие настройки безопасности:
- Файл
/etc/ssh/sshd_config.d/50-cloud-init.confвключаетPasswordAuthentication no; - В некоторых случаях прописан
AuthenticationMethods any, блокирующий парольную авторизацию; - В результате SSH принимает только ключи, даже если вы прописали
PasswordAuthentication yesв основном конфиге.
🧩 Почему правки не работают
Потому что в новых системах используется директива Include /etc/ssh/sshd_config.d/*.conf — все файлы из этой папки подгружаются после основного sshd_config. То есть любое no из drop-in-файлов полностью перекрывает ваши изменения.
⚙️ Как починить вход по паролю для root
- Проверь пароль root:
sudo passwd -S rootЕсли видитеP— пароль установлен. - Найдите, где запрещена аутентификация:
sudo grep -RniE 'PasswordAuthentication|AuthenticationMethods' /etc/ssh/sshd_config.d/ - Исправьте drop-in-файлы:
sudo sed -i 's/^PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config.d/50-cloud-init.conf - Создайте финальный override, чтобы всё перебить:
sudo tee /etc/ssh/sshd_config.d/99-override.conf <<'EOF' PermitRootLogin yes UsePAM yes PasswordAuthentication yes PubkeyAuthentication yes KbdInteractiveAuthentication yes ChallengeResponseAuthentication yes EOF - Проверь и перезапусти SSH:
sudo sshd -t sudo systemctl restart sshd - Убедись, что всё включено:
sudo sshd -T | egrep 'passwordauthentication|permitrootlogin|usepam|authenticationmethods'Ожидаемый результат:usepam yes permitrootlogin yes passwordauthentication yes
🧠 Почему DigitalOcean делает так по умолчанию
Потому что безопасность: вход по паролю под root — потенциальная дыра. Провайдеры блокируют его, чтобы снизить риск взлома «по SSH-бруту» сразу после деплоя. Это не баг, а осознанная политика безопасности.
🛡️ Советы по безопасности
- После настройки верните парольную авторизацию в режим только для нужных IP:
- Отключите GSSAPI для ускорения коннекта:
GSSAPIAuthentication no - Используйте Fail2Ban или firewalld для блокировки брута.
✅ Итог
Теперь вы можете спокойно входить на VPS по паролю, понимать, почему это не работало, и как управлять политикой SSH на новых серверах DigitalOcean и CentOS.
