Вопрос или проблема
После обновления я больше не могу войти в свою систему (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:
-
Измените файл конфигурации SSH:
Откройте файл конфигурации SSH-сервера:sudo nano /etc/ssh/sshd_config
Найдите или добавьте строку следующего содержания:
PubkeyAcceptedKeyTypes +ssh-rsa
Это позволяет серверу SSH принимать ключи, подписанные с использованием алгоритма
ssh-rsa
. -
Перезапустите службу 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
Это поможет вам получить больше информации о том, почему аутентификация может не проходить.
Надеюсь, это решение поможет вам восстановить доступ к вашему серверу.