La ssh-keygen
commande génère des .pub
fichiers qu'elle décrit comme des "fichiers de clés publiques", mais ils sont d'un format totalement différent de la plupart des "fichiers de clés publiques" que j'ai l'habitude de voir, qui sont au format PEM. Les ssh-keygen
fichiers -style ressemblent à ceci:
ssh-rsa AAAAB3NzaC1... user@host
... alors que les fichiers PEM ressemblent à ceci:
-----BEGIN CERTIFICATE-----
MIIGZjCCBU6gAwIBAgIDCIrNMA0GCSqGSIb3DQEBBQUAMIGMMQsw...
-----END CERTIFICATE-----
Ces deux formats sont-ils interchangeables ou remplissent-ils un objectif fondamentalement différent? J'ai rencontré ce problème parce que je voulais obtenir l'empreinte digitale de la clé RSA2 de mon fichier de clé publique codé PEM, mais la méthode généralement suggérée pour le faire ( ssh-keygen -l
) indique que mon fichier codé PEM "n'est pas un fichier de clé publique".
Soit dit en passant, je connais cette réponse , mais elle ne couvre pas les fichiers .pub générés par ssh-keygen
.
la source
openssl rsa -in privatekey_rsa -pubout
, qui est en fait une clé publique, et non un certificat.Réponses:
Les paires de clés OpenSSH ne sont pas PEM ni aucune autre norme x500. Les nouvelles versions d'OpenSSH peuvent utiliser des clés PEM X.509, mais c'est une autre boule de cire distincte de ssh-keygen, et doit être configurée explicitement. Autant que je sache, aucune implémentation majeure de SSH n'utilise exactement les mêmes formats de clé que les autres.
Comme le note Zoredache , si vous utilisez autre chose que OpenSSH (deus iuvo vos), cela pourrait être sacrément proche de n'importe quoi.
la source
.pub
fichier sur mon serveur,/etc/ssh/ssh_host_rsa_key.pub
et n'utilisait aucune architecture d'autorité de certification SSL. Lorsque j'ai exécutéssh-keygen -l
ce fichier, il m'a donné l'empreinte de la clé RSA2 du serveur.