163 votes

Comment extraire une clé publique à l'aide d'OpenSSL ?

La commande suivante génère un fichier contenant les clés publique et privée :

openssl genrsa -des3 -out privkey.pem 2048

Source : aquí

Avec OpenSSL, la clé privée contient également les informations relatives à la clé publique, de sorte qu'il n'est pas nécessaire de générer une clé publique séparément.

Comment extraire la clé publique du fichier privkey.pem ?

Merci.

238voto

stewe Points 14623
openssl rsa -in privkey.pem -pubout > key.pub

La clé publique est alors inscrite dans key.pub

163voto

lababidi Points 83

Bien que la technique ci-dessus fonctionne dans le cas général, elle n'a pas fonctionné avec les fichiers PEM d'Amazon Web Services (AWS).

J'ai trouvé dans la documentation d'AWS la commande suivante qui fonctionne : ssh-keygen -y

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html

éditer Merci @makenova pour la ligne complète :

ssh-keygen -y -f key.pem > key.pub

12voto

cnd Points 94

Pour ceux qui sont intéressés par les détails, vous pouvez voir ce que contient le fichier de clé publique (généré comme expliqué ci-dessus), en faisant ceci:-

openssl rsa -noout -text -inform PEM -in key.pub -pubin

ou pour le fichier de la clé privée, ceci:-

openssl rsa -noout -text -in key.private

qui affiche sous forme de texte sur la console les composants réels de la clé (module, exposants, nombres premiers, ...).

4voto

Bendo Points 41

Pour AWS, l'importation d'une clé publique existante,

  1. Exporter à partir du .pem en faisant ceci... (sous linux)

    openssl rsa -in ./AWSGeneratedKey.pem -pubout -out PublicKey.pub

Cela produira un fichier qui, si vous l'ouvrez dans un éditeur de texte, ressemblera à ceci...

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn/8y3uYCQxSXZ58OYceG
A4uPdGHZXDYOQR11xcHTrH13jJEzdkYZG8irtyG+m3Jb6f9F8WkmTZxl+4YtkJdN
9WyrKhxq4Vbt42BthadX3Ty/pKkJ81Qn8KjxWoL+SMaCGFzRlfWsFju9Q5C7+aTj
eEKyFujH5bUTGX87nULRfg67tmtxBlT8WWWtFe2O/wedBTGGQxXMpwh4ObjLl3Qh
bfwxlBbh2N4471TyrErv04lbNecGaQqYxGrY8Ot3l2V2fXCzghAQg26Hc4dR2wyA
PPgWq78db+gU3QsePeo2Ki5sonkcyQQQlCkL35Asbv8khvk90gist4kijPnVBCuv
cwIDAQAB
-----END PUBLIC KEY-----
  1. Cependant, AWS n'acceptera PAS ce fichier.

    Il faut enlever le -----BEGIN PUBLIC KEY----- y -----END PUBLIC KEY----- du fichier. Sauvegardez-le et importez-le, il devrait fonctionner dans AWS.

2voto

Justin Points 4591

Si vous cherchez à copier un fichier Amazon AWS .pem dans une autre paire de clés région, procédez comme suit :

openssl rsa -in .ssh/amazon-aws.pem -pubout > .ssh/amazon-aws.pub

Dans ce cas

aws ec2 import-key-pair --key-name amazon-aws --public-key-material '$(cat .ssh/amazon-aws.pub)' --region us-west-2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X