Ao gerar pares de chaves usando ssh-keygen
, pode-se especificar o tipo de assinatura desejado por -t
, como ssh-keygen -t ssh-rsa
. Eu me pergunto, o tipo de assinatura de uma chave privada ssh é imutável , uma vez que os pares de chaves são criados?
Se for mutável, qual ferramenta posso utilizar para alterar o tipo de assinatura? e como?
Estou fazendo esta pergunta porque uma das minhas chaves antigas usa ssh-rsa
o tipo de assinatura e agora o ssh-rsa
algoritmo de assinatura ficou obsoleto.
Se você criar um par de chaves SSH regular usando
ssh-keygen -t rsa
, a chave não incluirá nenhuma assinatura - é literalmente apenas um par de chaves RSA e nada mais, como sempre foi. Uma chave SSH não possui um tipo de assinatura; uma conexão SSH tem um.Para essas chaves, uma versão moderna do SSH usará automaticamente
rsa-sha2-512
oursa-sha2-256
assinaturas quando ambas as extremidades da conexão suportarem os algoritmos de assinatura mais recentes. Na autenticação de chave SSH, as assinaturas são transitórias e são criadas apenas para a negociação da conexão, sendo descartadas posteriormente. Portanto, nenhuma alteração nas chaves RSA existentes do SSH é necessária para usar as novas assinaturas.(Se você executar
ssh-keygen -f id_rsa -l
, a saída normalmente dirá "SHA256": isso significa que o algoritmo SHA256 é usado para produzir a impressão digital da chave , que não é armazenada na própria chave, mas calculada sob demanda. Comssh-keygen -f id_rsa -l -E md5
, você pode calcular um valor antigo impressão digital MD5 estilo da mesma chave.)Mas se você estiver usando certificados SSH gerenciados centralmente , ou seja, se você tiver arquivos como
id_rsa-cert.pub
, eles terão assinaturas de longo prazo incorporadas neles. Para se livrar do algoritmo de assinatura obsoleto, você precisaria reemitir o(s) certificado(s), provavelmente pela autoridade de certificação de chave SSH da sua organização.Você pode fornecer uma cópia de sua chave pública SSH existente para a autoridade de certificação (se ela ainda não a tiver arquivada) e ela executará:
assim como quando originalmente emitiu o certificado em primeiro lugar.
Esse comando geraria um novo
/path/to/user_key-cert.pub
arquivo, que, se a CA usar um up-to-datessh-keygen
, incluirá a assinatura da CA usando orsa-sha2-512
algoritmo mais recente por padrão.Você ainda usaria a mesma chave privada de antes, mas precisaria distribuir o certificado reemitido (essencialmente uma cópia certificada centralmente da chave pública, com alguns recursos extras de gerenciamento, como uma data de expiração opcional e uma
key_id
string definida pela CA que é garantida ser registrado sempre que este certificado for usado para autenticação).É claro que a CA pode decidir se aceitará ou não cópias de chaves públicas SSH certificadas anteriormente para reemitir os certificados; eles podem exigir que você crie uma nova chave privada ao mesmo tempo, mas isso seria um problema de política, não técnico.
Eu acho que você não pode. As chaves RSA e (digamos) as chaves DSA são geradas de forma diferente. Então, um determinado par de chaves para um desses algoritmos não é um par de chaves para os outros.
E se você está preocupado com a força do RSA, acho que deve se preocupar com cada algoritmo que compartilha os mesmos pares de chaves.
Então o melhor que você pode fazer é regenerar o par de chaves e distribuir novamente as chaves públicas (o que você pode fazer através de um scp protegido por RSA até você mudar).