2012-04-22 42 views
78

El siguiente comando genera un archivo que contiene tanto la clave pública y privada:¿Cómo extraer la clave pública usando OpenSSL?

openssl genrsa -des3 -out privkey.pem 2048 

Fuente: here

Con OpenSSL, la clave privada contiene la información de clave pública, así, por lo que una clave pública doesn no necesita generarse por separado

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

Gracias.

Respuesta

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

que escribe la clave pública a key.pub

+0

¡Muchas gracias! – Jake

+0

De nada :) – stewe

+9

Siempre es mejor usar la opción interna para hacer esto: '-out', por ejemplo: ' openssl rsa -in privkey.pem -pubout -out key.pub' en lugar de redireccionar stdout a un archivo. –

4

Para aquellos interesados ​​en los detalles - se puede ver lo que hay dentro del archivo de clave pública (generada 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 da salida como texto en la consola los componentes reales de la clave (módulo, exponentes, primos, ...)

68

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

he encontrado en la documentación de AWS las siguientes obras de comando: ssh-keygen -y

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

+30

Gracias. Esto es querer lo necesitaba. Para omitir las indicaciones, puede usar 'ssh-keygen -y -f key.pem> key.pub' – makenova

+4

Esta es la respuesta correcta' ssh-keygen -y -f key.pem' – Justin

+1

De acuerdo 'ssh-keygen -y -f key.pem' es correcto. – dps

2

Si buscas la manera de copiar un Amazon AWS .pem par de claves en un región diferente haga lo siguiente:

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

Luego

+2

La clave pública salida por 'openssl' está intercalada en encabezados PEM, que deberá eliminar antes de que AWS CLI acepte la llave. –

0

Para AWS Importación de una clave pública existente,

  1. Exportar en el .pem hacer esto ... (en Linux)

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

Esto producirá un archivo que, si se se abre en un editor de texto con un aspecto similar al siguiente ...

-----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 el -----BEGIN PUBLIC KEY----- y -----END PUBLIC KEY----- del archivo. Guárdalo e impórtalo, y debería funcionar en AWS.

Cuestiones relacionadas