Cambiar el algoritmo de firma de certificado predeterminado en ssh-keygen

Cambiar el algoritmo de firma de certificado predeterminado en ssh-keygen

Actualmente, OpenSSH 7.8 (Fedora 28/Arch) no puede negociar con un servidor OpenSSH 7.4 (CentOS 7) utilizando una clave firmada de certificado, como se describeen un error presentado en bugzilla de redhat.Notas de la versión de OpenSSHindicar un cambio en el algoritmo de negociación de firma ahora debe definirse explícitamente. Si bien ahora se permiten 2 nuevos algoritmos de firmas (desde 7.7), por error o por intención,[correo electrónico protegido]El certificado de usuario ya no se puede utilizar para la autenticación.

Pasos para reproducir:

  1. ssh-keygen -t rsa -b 2048 -f prueba
  2. ssh-keygen -s cert.key -I "certificado firmado" -n testuser test.pub
  3. ssh -i prueba -vvv usuario@ipservidor

Estoy intentando solucionar este problema modificando el algoritmo utilizado en el proceso de firma del certificado.

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

El valor predeterminado para ssh-keygen es iniciar sesión con la clave[correo electrónico protegido].

Según el documento 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]

Esto me dice que hay 7 tipos de claves disponibles. ¿Cómo especifico una en el proceso de firma del certificado ssh-keygen?

Tenga en cuenta:

Aquí son posibles dos soluciones.

  1. Encuentre una solución alternativa adecuada para permitir[correo electrónico protegido] certificados de usuario nuevamente.
  2. Encuentre una manera de cambiar el algoritmo de firma de certificados en ssh-keygen.

Actualización: (1 día después)

Según un usuario de #openssh, la clave utilizada para firmar la clave privada establece un algoritmo de firma de certificado. Esto significa que, si puedo descubrir cómo cambiar el algoritmo RSA de RSA:SHA1 a RSA:SHA2, podría forzar que el algoritmo de firma del certificado sea sha2-256, lo cual es posible en ambos lados con una solución adicional.

Actualización: (12 días después)

Al observar el informe de error enviado, se ha logrado poco progreso... o eso parecía. Pude tener una conversación informal con un empleado de RHEL que echó un vistazo a mi error y dijo que las personas adecuadas lo están mirando y, dado que esto también está afectando a RHEL, probablemente tendrá una solución con RHEL/CentOS 7.6.

Respuesta1

Elartículo vinculadodocumenta el siguiente enfoque:

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

La clave es el -t rsa-sha2-256parámetro.

información relacionada