Ich habe eine PEM-Datei, die ich einem laufenden ssh-Agenten hinzufüge:
$ 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)
Wie kann ich den Fingerabdruck des Schlüssels (der in ssh-agent angezeigt wird) direkt aus der Datei abrufen? Ich weiß, ssh-keygen -l -f some_key
funktioniert für "normale" SSH-Schlüssel, aber nicht für PEM-Dateien.
Wenn ich ssh-keygen in der .pem-Datei versuche, erhalte ich:
$ 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.
Dieser Schlüssel beginnt mit:
-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.
im Gegensatz zu einem "normalen" privaten Schlüssel, der wie folgt aussieht:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E15F2.... etc.
ssh-keygen -l
kann eine Privatekey-Datei nicht gelesen werden, obwohl andere ssh-keygen
(und ssh*
) Operationen dies tun. Bei der ssh-keygen
Generierung eines Schlüssels werden jedoch sowohl die private Schlüsseldatei id_rsa
als auch eine entsprechende publickey-Datei mit .pub
hinzugefügtem Schlüssel geschrieben id_rsa.pub
. Ältere Benutzer ssh-keygen -l
werden versuchen .pub
, den von Ihnen angegebenen Dateinamen zu ergänzen und diese publickey-Datei zu lesen.
.ssh/id_rsa
von OpenSSH mit allen Standardeinstellungen erstellte Datei ist eine PEM-Datei. Die privaten Schlüssel sind standardmäßig PEM-codiert. Tatsächlich können Sie RSA-Schlüssel verwenden, die Sie mit OpenSSL direkt mit OpenSSH generieren.