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_keyfunktioniert 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 -lkann 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 .pubhinzugefü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_rsavon 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.