sources publica privada generar crear comandos clave certificado openssl public-key-encryption pki

publica - ¿Cómo extraer la clave pública con OpenSSL?



openssl pkcs12 (5)

El siguiente comando genera un archivo que contiene claves públicas y privadas:

openssl genrsa -des3 -out privkey.pem 2048

Fuente: here

Con OpenSSL, la clave privada también contiene la información de la clave pública, por lo que no es necesario generar una clave pública por separado.

¿Cómo podemos extraer la clave pública del archivo privkey.pem?

Gracias.


Para AWS importar una clave pública existente,

  1. Exportar desde el .pem haciendo esto ... (en Linux)

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

Esto producirá un archivo que si abres en un editor de texto con un aspecto similar a este ...

-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn/8y3uYCQxSXZ58OYceG A4uPdGHZXDYOQR11xcHTrH13jJEzdkYZG8irtyG+m3Jb6f9F8WkmTZxl+4YtkJdN 9WyrKhxq4Vbt42BthadX3Ty/pKkJ81Qn8KjxWoL+SMaCGFzRlfWsFju9Q5C7+aTj eEKyFujH5bUTGX87nULRfg67tmtxBlT8WWWtFe2O/wedBTGGQxXMpwh4ObjLl3Qh bfwxlBbh2N4471TyrErv04lbNecGaQqYxGrY8Ot3l2V2fXCzghAQg26Hc4dR2wyA PPgWq78db+gU3QsePeo2Ki5sonkcyQQQlCkL35Asbv8khvk90gist4kijPnVBCuv cwIDAQAB -----END PUBLIC KEY-----

  1. Sin embargo, AWS NO aceptará este archivo.

    Tiene que quitar -----BEGIN PUBLIC KEY----- y -----END PUBLIC KEY----- del archivo. Guárdalo e impórtalo, y debería funcionar en AWS.


Para aquellos interesados ​​en los detalles, puede ver lo que hay dentro del archivo de clave pública (generado como se explicó anteriormente), al hacer esto:

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

o para el archivo de clave privada, esto:

openssl rsa -noout -text -in key.private

que emite como texto en la consola los componentes reales de la clave (módulo, exponentes, primos, ...)


Si busca copiar un par de claves .pem Amazon AWS en una región diferente, haga lo siguiente:

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

Entonces

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


Sin embargo, la técnica anterior funciona para el caso general, no funcionó en los archivos PEM de Amazon Web Services (AWS).

Encontré en los documentos de AWS que funciona el siguiente comando: ssh-keygen -y

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

editar Gracias @makenova por la línea completa:

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


openssl rsa -in privkey.pem -pubout > key.pub

Eso escribe la clave pública a key.pub