Entrada
Preview Image

Configurar llaves SSH


Configurar llaves SSH

Si trabajas con GitHub y deseas interactuar con los repositorios de forma frecuente desde tu computador, usar una clave SSH es una opción segura y conveniente de autenticarte y comunicarte con tus repositorios en GitHub. Con SSH, tu conexión está cifrada y no necesitas escribir tus credenciales cada vez.

Agregar una clave SSH nueva a tu cuenta de GitHub

Vamos a seguir algunos sencillos pasos para agregar una clave SSH a tu cuenta de GitHub usando la línea de comandos.

Comprobar tus SSH existentes

Antes de generar una clave SSH, verifica si ya tienes una clave SSH existente. Abre una terminal o Git Bash y ejecuta:

1
ls -al ~/.ssh

Busca archivos de claves públicas como id_rsa.pub o id_ecdsa.pub. Si existen, puedes reutilizarlos. Si no, genera una nueva clave.

1. Generar una nueva clave SSH

Para generar un par de claves SSH (clave pública y privada), usaremos 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 una terminal con Ctrl + T y pega 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 solicitará 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

Agregamos la llave privada al agente SSH. Si la creaste con otro nombre, asegúrate de indicar su ruta; si usaste los valores predeterminados, simplemente copia 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
  • Haz 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.

El resultado anterior confirma que tu clave SSH está bien configurada y puedes usarla para usar comandos como git clone, git pull, git push.

Consejos para mejorar la gestión de claves SSH

Usar claves SSH para autenticación es una práctica segura, pero con el tiempo puedes terminar con muchas claves, nombres confusos o errores al conectar. Aquí te dejo algunos consejos para mantenerlas ordenadas y bajo control desde Bash.

1. Guardar tus claves con nombres descriptivos

En lugar de usar el nombre predeterminado id_rsa, nómbralas según el servicio o propósito:

1
2
3
~/.ssh/github_ed25519
~/.ssh/servidor_empresa_rsa
~/.ssh/aws_personal_key

2. Crear un archivo para facilitar conexiones

Crea el archivo ~/.ssh/config para definir accesos rápidos por alias:

1
2
3
4
5
6
7
8
9
Host github
  HostName github.com
  User git
  IdentityFile ~/.ssh/github_ed26520

Host empresa
  HostName 192.168.1.100
  User mcherreraa
  IdentityFile ~/.ssh/servidor_empresa_rsa

Ahora, simplemente conectas con algún servidor a través de un nombre de Host. Por ejemplo:

1
ssh github

La línea anterior se traduce internamente:

1
ssh -i ~/.ssh/github_ed26520 git@github.com

Como resultado, debería mostrar en el caso de github un mensaje:

1
Hi <tu usuario>! You've successfully authenticated, but GitHub does not provide shell access.

3. Limpieza rápida de claves en uso

Para ver qué claves están activas, ejecuta el siguiente comando:

1
ssh-add -l

Para eliminar todas:

1
ssh-add -D

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!

Esta entrada está licenciada bajo CC BY 4.0 por el autor.