diferença do arquivo pem - ssh-keygen vs openssl

3

Gerei meu par de chaves pública / privada usando

ssh-keygen -t rsa -b 2048 -v

e, em seguida, precisava de um arquivo .pem e seguiu este link

ssh-keygen -f id_rsa -e -m pem   
-----BEGIN RSA PUBLIC KEY-----

mas depois encontrei este link

openssl rsa -in ~/.ssh/id_rsa -outform pem
-----BEGIN RSA PRIVATE KEY-----

por que a saída é diferente?

    
por emeraldjava 22.01.2016 / 16:02

1 resposta

3

É assim que eles são escritos; O OpenSSH emite o material da chave pública por meio de uma chamada PEM_write_RSAPublicKey(stdout, k->rsa) na função do_convert_to_pem de ssh-keygen.c , enquanto o OpenSSL opera na determinada chave privada. Com o OpenSSH, imagino que a maioria dos casos seria converter a chave pública em um formato utilizável em algum servidor externo, com a chave privada permanecendo privada no sistema do cliente, portanto, operar na chave pública do par de chaves faz sentido . Com o OpenSSL, não há nenhuma preocupação com "obter uma chave pública em uma forma adequada para algum outro servidor SSH", para que o código opere diretamente na chave privada. Código diferente, intenções diferentes, resultados diferentes.

    
por 22.01.2016 / 17:21