userauth_pubkey: алгоритм подписи ssh-rsa не входит в PubkeyAcceptedAlgorithms после обновления OpenSSH

Вопрос или проблема

После обновления я больше не могу войти в свою систему (FreeBSD 14.0) с помощью RSA-ключа, получая:

userauth_pubkey: алгоритм подписи ssh-rsa не в PubkeyAcceptedAlgorithms

в /var/logs/auth.log

при каждой попытке входа через SSH с использованием доверенных ключей, которые прекрасно работали до обновления.

Оказалось, что с обновлением ОС и OpenSSH появился новый параметр:

/etc/ssh/sshd_config :

...
PubkeyAuthentication yes
PubkeyAcceptedKeyTypes=+ssh-rsa 

Добавление принятого алгоритма помогает после перезапуска службы. На FreeBSD:

sudo service sshd restart

На платформах el9, даже если вы установите PublickeyAuth, он все равно будет отклонять, потому что SHA1 по умолчанию отключен в крипто-политиках.

Запустите эту команду update-crypto-policies --set DEFAULT:SHA1

Ответ или решение

Проблема, с которой вы столкнулись, связана с изменениями в конфигурации OpenSSH после обновления, что привело к отказу в авторизации с использованием ключа SSH, основанного на алгоритме RSA. Сообщение об ошибке указывает на то, что алгоритм ssh-rsa не включен в список допустимых для аутентификации. Ниже приведены шаги для решения этой проблемы на системе FreeBSD и на платформах EL9.

Решение для FreeBSD 14.0:

  1. Измените файл конфигурации SSH:
    Откройте файл конфигурации SSH-сервера:

    sudo nano /etc/ssh/sshd_config

    Найдите или добавьте строку следующего содержания:

    PubkeyAcceptedKeyTypes +ssh-rsa

    Это позволяет серверу SSH принимать ключи, подписанные с использованием алгоритма ssh-rsa.

  2. Перезапустите службу SSH:
    Чтобы изменения вступили в силу, перезапустите службу SSH:

    sudo service sshd restart

После этого вы должны иметь возможность войти на сервер с использованием вашего RSA ключа.

Решение для систем на базе EL9:

На платформах EL9 проблема может быть связана с отключением поддержки SHA1 в политиках криптографии. Чтобы исправить это, выполните следующую команду:

sudo update-crypto-policies --set DEFAULT:SHA1

Эта команда изменяет политику криптографии по умолчанию так, чтобы она разрешала использование алгоритмов, учитывающих SHA1.

Заключение:

Если вы выполнили указанные шаги и все равно сталкиваетесь с проблемами, рекомендуется проверить другие настройки в файле sshd_config, такие как PubkeyAuthentication, чтобы убедиться, что аутентификация с использованием публичного ключа включена. Также убедитесь, что ваш ключ правильно установлен на стороне клиента и сервера.

Если проблема сохраняется, возможно, стоит просмотреть логи для более детальной диагностики:

sudo tail -f /var/log/auth.log

Это поможет вам получить больше информации о том, почему аутентификация может не проходить.

Надеюсь, это решение поможет вам восстановить доступ к вашему серверу.

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

Капча загружается...