Tengo un archivo PEM que agrego a un agente ssh en ejecución:
$ file query.pem
query.pem: PEM RSA private key
$ ssh-add ./query.pem
Identity added: ./query.pem (./query.pem)
$ ssh-add -l | grep query
2048 ef:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX ./query.pem (RSA)
¿Cómo puedo obtener la huella digital de la clave (que veo en ssh-agent) directamente del archivo? Sé que ssh-keygen -l -f some_key
funciona para claves ssh "normales", pero no para archivos PEM.
Si intento ssh-keygen en el archivo .pem, obtengo:
$ ssh-keygen -l -f ./query.pem
key_read: uudecode PRIVATE KEY----- failed
key_read: uudecode PRIVATE KEY----- failed
./query.pem is not a public key file.
Esta clave comienza con:
-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.
a diferencia de una clave privada "normal", que se ve así:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E15F2.... etc.
ssh-keygen -l
no puedo leer un archivo de clave privada, aunque otras ssh-keygen
(y ssh*
) operaciones sí lo hacen. Pero cuando ssh-keygen
genera una clave, escribe tanto el archivo de clave privada, por ejemplo, id_rsa
y un archivo de clave pública correspondiente con, .pub
por ejemplo, agregado id_rsa.pub
. Más viejos ssh-keygen -l
se trate de añadir .pub
al nombre de archivo que especifique y leer ese archivo de clave pública.
.ssh/id_rsa
archivo generado por OpenSSH usando todos los valores predeterminados ES un archivo PEM. Las claves privadas están codificadas por PEM de forma predeterminada. De hecho, puede usar claves RSA que genere con OpenSSL directamente con OpenSSH.