Obtener la clave pública a partir de una clave privada

Para los que no sepan, rápidamente les comento que el tener un par de claves permite aplicar un tipo de criptografía denominado asimétrica. La misma se basa en tener una clave pública que comunicamos y una privada (secreta) que guardamos nosotros, ambas relacionadas. Se puede usar de 2 maneras diferentes:

  • con la clave pública encriptamos un contenido y con la privada lo desencriptamos
  • con la clave privada generamos una firma digital y con la pública, la verificamos

Para generar un par de claves en linux, accedemos a la línea de comandos y tipeamos:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
3b:d6:67:66:0c:43:b5:5a:c7:ed:de:4e:87:db:f6:d5 user@user-pc
The key's randomart image is:

 +--[ RSA 2048]----+
 |            .    |
 |           . o . |
 |          . o o .|
 |         . o . . |
 |        S +     .|
 |         o +   oo|
 |        + . * . E|
 |       . . =   =+|
 |              ..=|
 +-----------------+

De esta manera obtendremos las 2 claves en el directorio .ssh del usuario: id_rsa es la clave privada y id_rsa.pub la pública. Tengan en cuenta que para este ejemplo no especificamos una passphrase que sería lo recomendable.

Ahora bien, suponiendo que entregamos la clave pública y nos olvidamos de dejarnos una copia de ella, podemos volver a generar la clave pública  a partir de la clave privada y guardarla en un archivo invocando el comando ssh-keygen de la siguiente manera:

$ ssh-keygen -yf <CLAVE_PRIVADA> > <CLAVE_PUBLICA>

Ejemplo:

$ ssh-keygen -yf /home/user/.ssh/id_rsa > /home/user/.ssh/id_rsa.pub

 

Basado en:

http://systemadmin.es/2014/08/obtener-la-clave-publica-desde-una-clave-privada-ssh

Tagged with: ,
Publicado en Linux