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,
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-----
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