
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:
- ssh-keygen -t rsa -b 2048 -f prueba
- ssh-keygen -s cert.key -I "certificado firmado" -n testuser test.pub
- 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:
El siguiente cambio de configuración en el cliente o servidor no me funciona.
PubkeyAcceptedKeyTypes rsa-sha2-256,rsa-sha2-512,[correo electrónico protegido],[correo electrónico protegido],[correo electrónico protegido]
Firmar la clave en formato ed25519 no es compatible con servidores con openssh 5.3, como CentOS 6 y, por lo tanto, no se considerará una solución.
Aquí son posibles dos soluciones.
- Encuentre una solución alternativa adecuada para permitir[correo electrónico protegido] certificados de usuario nuevamente.
- 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-256
parámetro.