GitHub: Configurar llaves SSH 🔑
Cuando estamos trabajando con GitHub y deseamos interactuar con los repositorios desde nuestra máquina de forma frecuente, utilizar una clave SSH es una opción segura y conveniente de autenticarte y comunicarte con tus repositorios en GitHub. SSH permite que tu conexión con GitHub sea cifrada y sin necesidad de ingresar tus credenciales.
1. Generar una nueva clave SSH
Para generar un par de claves SSH (clave pública y privada), utilizaremos la herramienta de línea de comandos ssh-keygen
, incluida por defecto en sistemas Linux, macOS y disponible en Windows a través de Git Bash.
Comenzamos abriendo la terminal y pegando el siguiente comando (remplaza "user@mail.com"
por tu correo electrónico):
1
ssh-keygen -t rsa -b 4096 -C "user@mail.com"
-t rsa
: Especifica el tipo de clave (RSA es el más común).-b 4096
: Especifica que tan compleja es la llave (el tamaño 4096 bits se considera seguro).-C "user@mail.com
: Agrega un comentario con tu dirección de correo para identificar la clave.
Luego se nos pedirá donde almacenar la nueva llave, si se presiona Enter por lo general se almacena en el directorio del usuario en una subcarpeta oculta llamada .ssh
:
mcherrera@dev:~$ ssh-keygen -t rsa -b 4096 -C "contacto@mail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mcherrera/.ssh/id_rsa): Si deseas cambiar de ubicación, define aquí el PATH de destino
Enter passphrase (empty for no passphrase): Si la incluyes, cada vez que uses la clave privada para conectarte a un servidor, tendrás que ingresar esta frase de contraseña para descifrar la clave.
Enter same passphrase again:
Your identification has been saved in /home/mcherrera/.ssh/id_rsa
Your public key has been saved in /home/mcherrera/.ssh/id_rsa.pub
The key fingerprint is:
...
Selecciona la ubicación de tu preferencia o solo presiona Enter.
2. Agregar la clave privada al servicio de ssh-agent
El comando ssh-agent
es un programa auxiliar que realiza seguimiento de las claves de identidad del usuario y sus frases de contraseñas. A continuación, sigue las instrucciones para agregar
Verificar si el programa se está ejecutando:
1
eval $(ssh-agent -s)
Esto debería mostrar un PID (Process ID). Por ejemplo:
1
Agent pid 483833
Ahora agregamos la llave privada al agente ssh. Si creaste la llave con un nombre distinto, asegurate de apuntar hacia donde se encuentre la llave que creaste. Si dejaste los valores predeterminado basta con copiar el siguiente comando:
1
ssh-add ~/.ssh/id_rsa
1
ssh-add $env:USERPROFILE\.ssh\id_rsa
1
ssh-add %USERPROFILE%\.ssh\id_rsa
El comando anterior nos devolverá el siguiente mensaje:
1
Identity added: /<User>/.ssh/id_rsa (user@mail.com)
3. Registrar la clave pública en Github
Antes de registrar tu clave SSH pública en GitHub, necesitas copiar el contenido de la clave al portapapeles para luego pegarla fácilmente.
En Windows sigue con Git Bash, usa la herramienta clip
de Windows para copiar la clave pública al portapales, también tienes los comandos equivalente para hacerlo a través de PowerShell o la CMD:
1
clip < ~/.ssh/id_rsa.pub
1
Get-Content "$env:USERPROFILE\.ssh\id_rsa.pub" | clip
1
type %USERPROFILE%\\.ssh\id_rsa.pub | clip
En sistemas Linux, puedes usar herramientas como xclip
. Asegúrate de instalarla:
1
sudo apt install xclip
Para copiar la clave, ejecuta el siguiente comando, ajustando la ruta según la ubicación de tu clave pública:
1
cat ~/.ssh/id_rsa.pub | xclip -selection clipboard
Una vez que tengamos la clave copiada en el portapapeles, el siguiente paso es registrarla en nuestra cuenta de GitHub. Para ello, sigue estos pasos:
- Vamos a nuestra cuenta en GitHub e iniciamos sesión.
- Dirigite a la configuración de llaves SSH y GPG
- Damos clic en el botón New SSH key.
- En el campo
title
agrega una etiqueta descriptiva para la clave nueva. - En el campo
Key
pega la clave que está contenida en el portapapeles con ctrl + v.
4. Probar la Conexión
Para verificar que todo funciona correctamente, comprobamos la conexión con GitHub mediante el siguiente comando:
1
ssh -T git@github.com
Si todo está configurado correctamente, deberías recibir un mensaje como el siguiente:
1
Hi <tu-usuario>! You've successfully authenticated, but GitHub does not provide shell access.
Configurar claves SSH en GitHub no solo mejora la seguridad, sino que también incrementa la productividad al evitar el ingreso constante de credenciales, facilitando el trabajo frecuente con repositorios.
Y eso es todo, ¡espero que este artículo haya sido de utilidad!