El ssh-keygen
comando genera .pub
archivos que describe como "archivos de clave pública", pero tienen un formato totalmente diferente a la mayoría de los "archivos de clave pública" que he visto, que están en formato PEM. Los ssh-keygen
archivos de estilo se ven así:
ssh-rsa AAAAB3NzaC1... user@host
... mientras que los archivos PEM se ven así:
-----BEGIN CERTIFICATE-----
MIIGZjCCBU6gAwIBAgIDCIrNMA0GCSqGSIb3DQEBBQUAMIGMMQsw...
-----END CERTIFICATE-----
¿Son intercambiables estos dos formatos o están realizando un propósito fundamentalmente diferente? Encontré este problema porque quería obtener la huella digital de la clave RSA2 de mi archivo de clave pública codificada por PEM, pero el método generalmente sugerido para hacerlo ( ssh-keygen -l
) dice que mi archivo codificado por PEM "no es un archivo de clave pública".
Por cierto, soy consciente de esta respuesta , pero no cubre los archivos .pub generados por ssh-keygen
.
fuente
openssl rsa -in privatekey_rsa -pubout
, que en realidad es una clave pública y no un certificado.Respuestas:
Los pares de claves OpenSSH no son PEM ni ningún otro estándar x500. Las nuevas versiones de OpenSSH pueden usar claves X.509 PEM, pero esa es otra bola de cera separada de ssh-keygen, y debe configurarse explícitamente. Como mejor sé, ninguna implementación importante de SSH utiliza exactamente los mismos formatos clave que cualquier otro.
Como señala Zoredache , si está utilizando algo que no sea OpenSSH (deus iuvo vos), entonces podría ser casi cualquier cosa.
fuente
.pub
archivo en mi servidor/etc/ssh/ssh_host_rsa_key.pub
y no estaba usando ninguna arquitectura de autoridad de certificación SSL. Cuando ejecutéssh-keygen -l
ese archivo, me dio la huella digital de la clave RSA2 del servidor.