Почему не работает вход по паролю на новых VPS от DigitalOcean (CentOS 10)

После развёртывания свежего 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

  1. Проверь пароль root: sudo passwd -S root Если видите P — пароль установлен.
  2. Найдите, где запрещена аутентификация: sudo grep -RniE 'PasswordAuthentication|AuthenticationMethods' /etc/ssh/sshd_config.d/
  3. Исправьте drop-in-файлы: sudo sed -i 's/^PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config.d/50-cloud-init.conf
  4. Создайте финальный 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
  5. Проверь и перезапусти SSH: sudo sshd -t sudo systemctl restart sshd
  6. Убедись, что всё включено: 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.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

MrRoot
Обновлено: 3 ноября, 2025

Добавить комментарий