Git: ¿Cómo generar una clave SSH?

Las claves SSH también conocidas como llaves SSH, son una manera de identificar las computadoras de confianza, sin tener que ingresar una contraseña.

Las claves SSH se deben generar para cada usuario. Luego de realizar la generación obtendremos una clave privada y una clave pública.

En este artículo te mostraremos como generar claves SSH para tu usuario, siguiendo estos sencillos pasos:

Validamos si tenemos una clave SSH existente

Para ello escribimos lo siguiente en nuestro terminal:


ls -al ~/.ssh | grep ".pub"

Si ya tenemos una clave SSH nos aparecerá algo similar a esto:


-rw-r--r--  1 frontend frontend  399 Aug 22 17:04 id_rsa.pub

Pero si aún no la hemos generado entonces nos pueden salir estos 2 mensajes:


ls: cannot access /home/frontend/.ssh: No such file or directory

ó también:



Sí, nos puede salir vacío o en blanco, ya que puede que tengamos la carpeta .ssh pero no haya ningún archivo dentro de esta.

Generando una nueva clave SSH

Si aún no tenemos una clave .ssh entonces la procederemos a generar escribiendo en nuestro terminal lo siguiente:

Claro, colocando tu correo electrónico en vez de tu_correo@tu_dominio.com.


ssh-keygen -t rsa -C "tu_correo@tu_dominio.com"

De preferencia dejemoslo con los ajustes por defecto, por lo que cuando nos haga las 3 preguntas, simplemente pulsamos Enter.

Luego del proceso nos quedará algo parecido a esto:


ssh-keygen -t rsa -C "tu_correo@tu_dominio.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/frontend/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/frontend/.ssh/id_rsa.
Your public key has been saved in /home/frontend/.ssh/id_rsa.pub.
The key fingerprint is:
1f:34:f9:06:de:55:db:c0:6d:4c:03:97:cf:d3:15:56 tu_correo@tu_dominio.com
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|    . o S        |
|o+oo.o * E       |
|*+o...= o        |
|+o.+.o           |
|o o++..          |
+-----------------+

Esto quiere decir que ya generamos nuestras claves SSH correctamente. Como podemos apreciar, la clave privada a sido guardada en: /home/frontend/.ssh/id_rsa y la clave pública en /home/frontend/.ssh/id_rsa.pub.

Entonces ya podemos agregar nuestra nueva clave SSH al ssh-agent, escribiendo lo siguiente en nuestro terminal:


eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_rsa

Con esto hemos agregado nuestra clave al pequeño programa ssh-agent para que administre nuestras llaves por nosotros. Lo que quiere decir es que tu sólo ingresaras tu clave una sola vez, y después de eso, ssh-agent mantendrá la clave en memoria y cada vez que sea requerida ssh-agent la entregará por nosotros y si todo nos fue bien nos saldrá algo como esto:


Agent pid 6026
Identity added: /home/frontend/.ssh/id_rsa (/home/frontend/.ssh/id_rsa)

Agregando nuestra clave pública a Github

Primero instalamos xclip, para poder copiar el contenido de nuestra clave pública por consola.


sudo apt-get install xclip

Luego seleccionamos y copiamos el contenido de nuestra clave pública con la siguiente línea de código:


xclip -sel clip < ~/.ssh/id_rsa.pub

Con esto tenemos nuestra clave pública en el portapapeles, entonces ingresamos a Github, y En la sección Settings elegimos la opción SSH Keys e ingresamos.

Hacemos click en el botón Add SSH Key(Agrega tu clave SSH).

En el campo Title escribimos algo descriptivo sobre esta clave y en el campo Key pegamos el contenido del archivo ~/.ssh/id_rsa.pub(contenido que tenemos en nuestro portapapeles listo para pegar).

Y luego hacemos click en el bóton Add Key, nos pedirá nuestra contraseña de Github para validar y listo.

Validando nuestra clave SSH con Github

Para comprobar que todo anda bien, simplemente escribimos lo siguiente en nuestra terminal:


ssh -T git@github.com

Si todo anda bien, debemos obtener lo siguiente:


Warning: Permanently added the RSA host key for IP address '178.10.123.50' to the list of known hosts.
Hi jansanchez! You've successfully authenticated.

Con esto ya tenemos registrada nuestra clave pública en github, lo cual nos permitirá subir cambios al servidor de Github creando una conexión segura.

Si deseas realizar la configuración básica de git te recomendamos leer el siguiente artículo:
Comandos básicos Git.

Extra: Cómo "instalar" tu clave pública en una maquina remota

Para no estar poniendo siempre la clave del usuario de la pc a la que nos queremos conectar por ssh dejamos esta linea de código para que cuando te intentes conectar por ssh a una pc nunca más te pida la clave del usuario ya que la pc remota sabra que eres un usuario autorizado gracias a tu clave publica.


cat ~/.ssh/id_rsa.pub | ssh usuario@ip_remota "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Bueno eso es todo, espero que les haya servido de algo este pequeño artículo, no se olviden de enviar sus comentarios, compartir los posts en las redes sociales, Gracias.