Изменить алгоритм подписи сертификата по умолчанию в ssh-keygen

Изменить алгоритм подписи сертификата по умолчанию в ssh-keygen

В настоящее время OpenSSH 7.8 (Fedora 28/Arch) не может взаимодействовать с сервером OpenSSH 7.4 (CentOS 7), используя ключ, подписанный сертификатом, как описанов сообщении об ошибке, опубликованном на bugzilla компании RedHat.Заметки о выпуске OpenSSHуказать, что изменение в алгоритме согласования подписи теперь должно быть явно определено. Хотя теперь разрешены 2 новых алгоритма подписей (с 7.7), ошибка или намерение,[email protected]Сертификат пользователя больше не может использоваться для аутентификации.

Действия по воспроизведению:

  1. ssh-keygen -t rsa -b 2048 -f тест
  2. ssh-keygen -s cert.key -I "signedcert" -n testuser test.pub
  3. ssh -i test -vvv пользователь@ip-адрес_сервера

Я пытаюсь обойти эту проблему, изменив алгоритм, используемый в процессе подписания сертификата.

ssh-keygen -L -f test.crt
test.crt:
    Type: [email protected] user certificate
    Public key: RSA-CERT SHA256:<fingerprint>
    Signing CA: RSA SHA256:<fingerprint>

По умолчанию ssh-keygen подписывает ключ[email protected].

Согласно документации OpenSSH 7.8, PROTOCOL.certkeys.

All certificate types include certification information along with the
public key that is used to sign challenges. In OpenSSH, ssh-keygen
performs the CA signing operation.

Certified keys are represented using new key types:

    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]

Two additional types exist for RSA certificates to force use of
SHA-2 signatures (SHA-256 and SHA-512 respectively):

    [email protected]
    [email protected]

Это говорит мне, что доступно 7 типов ключей. Как мне указать один из них в процессе подписания сертификата ssh-keygen?

Пожалуйста, обрати внимание:

  • Следующее изменение конфигурации на клиенте или сервере у меня не работает.

    PubkeyAcceptedKeyTypes rsa-sha2-256,rsa-sha2-512,[email protected],[email protected],[email protected]

  • Подписание ключа в формате ed25519 не имеет обратной совместимости с серверами с OpenSH 5.3, такими как CentOS 6, и поэтому не будет считаться решением.

Здесь возможны два решения.

  1. Найдите подходящий обходной путь, позволяющий[email protected] снова пользовательские сертификаты.
  2. Найдите способ изменить алгоритм подписи сертификата в ssh-keygen.

Обновление: (1 день спустя)

По словам пользователя #openssh, алгоритм подписи сертификата задается ключом, используемым для подписи закрытого ключа. Это означает, что если я смогу выяснить, как изменить алгоритм RSA с RSA:SHA1 на RSA:SHA2, я смогу принудительно сделать алгоритм подписи сертификата sha2-256, что возможно с обеих сторон с дополнительным обходным путем.

Обновление: (12 дней спустя)

Просмотрев отправленный отчет об ошибке, я заметил, что прогресс был незначительным... или так казалось. Мне удалось неформально поговорить с сотрудником RHEL, который взглянул на мою ошибку и сказал, что ею занимаются нужные люди, и поскольку это также влияет на RHEL, то, скорее всего, исправление будет в RHEL/CentOS 7.6

решение1

Theсвязанная статьядокументирует следующий подход:

ssh-keygen -s cert.key -I "signedcert" -n testuser  -t rsa-sha2-256 test.pub

Ключевым моментом является -t rsa-sha2-256параметр.

Связанный контент