Atualmente, o OpenSSH 7.8 (Fedora 28 / Arch) não consegue negociar com um servidor OpenSSH 7.4 (CentOS 7) utilizando uma chave assinada por um certificado, como descrito em um bug arquivado no bugzilla do redhat . As notas de versão do OpenSSH indicam que uma mudança no algoritmo de negociação de assinatura agora deve ser definida explicitamente. Enquanto 2 novos algoritmos de assinaturas são permitidos (desde 7.7), um bug ou por intenção, o certificado de usuário [email protected] não pode mais ser usado para autenticação.
Passos para reproduzir:
Eu estou tentando contornar esse problema modificando o algoritmo utilizado no processo de assinatura de 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>
O padrão para ssh-keygen é assinar a chave em [email protected].
De acordo com o documento OpenSSH 7.8 doc, 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]
Isso me diz que existem 7 tipos de chaves disponíveis, como especifico um no processo de assinatura de certificado ssh-keygen.
Por favor, observe:
A seguinte alteração de configuração no cliente ou servidor não funciona para mim.
PubkeyAcceptedKeyTypes rsa-sha2-256, rsa-sha2-512, rsa-sha2-256-cert-v01 @ openssh.com, rsa-sha2-512-cert-v01 @ openssh.com, ssh-rsa-cert [email protected]
Assinar a chave no formato ed25519 não é compatível com versões anteriores dos servidores com o openssh 5.3, como o CentOS 6 e, portanto, não será considerado uma solução.
Duas soluções são possíveis aqui.
Atualização: (1 dia depois)
De acordo com um usuário em #openssh, um algoritmo de assinatura de certificado é definido pela chave usada para assinar a chave privada. Isso significa que, se eu puder descobrir como alterar o algoritmo RSA de RSA: SHA1 para RSA: SHA2, talvez consiga forçar o algoritmo de assinatura de certificado a ser sha2-256, o que é possível em ambos os lados com um trabalho adicional.
Atualização: (12 dias depois)
Assistindo ao relatório de bugs enviado, houve pouco progresso ... ou assim ele apareceu. Eu pude ter uma conversa informal com um funcionário do RHEL que deu uma olhada no meu bug e afirmou que as pessoas certas estão olhando para ele e como isso também está afetando o RHEL provavelmente terá uma correção com o RHEL / CentOS 7.6
Tags ssh fedora linux centos arch-linux