Cómo generar y configurar claves SSH para Git y GitHub
Las claves SSH (Secure Shell) son una forma segura y conveniente de autenticarte con servicios como GitHub, GitLab y otros repositorios remotos sin tener que ingresar tu nombre de usuario y contraseña cada vez. En este tutorial, aprenderás qué son las claves SSH, para qué sirven, sus beneficios y cómo generarlas y configurarlas para usar con Git y GitHub.
Como aclaración esta guía está enfocada en sistemas operativos basados en Unix, como Linux y macOS. Si estás utilizando Windows, puedes seguir los mismos pasos en Git Bash o Windows Subsystem for Linux (WSL).
Table of Contents
Open Table of Contents
- ¿Qué es una clave SSH?
- ¿Por qué usar claves SSH con Git y GitHub?
- 1. Verificar si ya tienes una clave SSH existente
- 2. Generar una nueva clave SSH
- 3. Agregar la clave SSH al agente SSH
- 4. Agregar la clave SSH pública a GitHub
- 5. Probar la conexión con GitHub
- Solución de problemas comunes
- Vídeo Tutorial
- Conclusión
¿Qué es una clave SSH?
Una clave SSH es un par de claves criptográficas utilizadas para autenticación segura entre un cliente y un servidor. El par consiste en:
- Clave privada: Se almacena de forma segura en tu máquina y nunca se comparte.
- Clave pública: Se puede compartir con cualquier servidor al que desees conectarte de forma segura.
Cuando te conectas a un servidor que tiene tu clave pública, el servidor puede verificar que eres quien dices ser sin necesidad de contraseñas.
¿Por qué usar claves SSH con Git y GitHub?
Beneficios
- Seguridad Mejorada: Las claves SSH son más seguras que las contraseñas, ya que son difíciles de adivinar o interceptar.
- Comodidad: No necesitas ingresar tu nombre de usuario y contraseña cada vez que interactúas con repositorios remotos.
- Automatización: Facilita la automatización de scripts y flujos de trabajo que interactúan con repositorios remotos.
Usos
- Autenticar operaciones de Git: Clonar, push, pull y otras operaciones sin ingresar credenciales.
- Acceso a servidores remotos: Conectar de forma segura a servidores para administración remota.
1. Verificar si ya tienes una clave SSH existente
Antes de generar una nueva clave SSH, verifica si ya tienes una:
ls -al ~/.ssh
Si ves archivos como id_rsa
y id_rsa.pub
, ya tienes una clave SSH. Puedes usar esta clave o generar una nueva. De lo contrario te mostrará el siguiente mensaje ls: cannot access '/home/usuario/.ssh': No such file or directory
.
2. Generar una nueva clave SSH
Genera una nueva clave SSH usando el siguiente comando:
ssh-keygen -t rsa -b 4096 -C "tu_correo_ejemplo@example.com"
-t rsa
: Especifica el tipo de clave a crear (RSA).-b 4096
: Especifica el tamaño en bits de la clave.-C "comentario"
: Añade un comentario, generalmente tu correo electrónico.
Durante la generación:
- Se te pedirá que especifiques la ubicación para guardar la clave. Presiona Enter para aceptar la ubicación predeterminada (
/home/usuario/.ssh/id_rsa
). - Se te preguntará por una contraseña (passphrase). Puedes dejarlo en blanco para no usar contraseña o ingresar una para mayor seguridad. Por el momento, puedes dejarlo en blanco presionando Enter 3 veces.
Después de completar, se generará un par de claves:
- Clave privada:
~/.ssh/id_rsa
- Clave pública:
~/.ssh/id_rsa.pub
3. Agregar la clave SSH al agente SSH
Para permitir que tu sistema use la clave SSH, necesitas agregarla al agente SSH:
-
Inicia el agente SSH:
eval "$(ssh-agent -s)"
Esto mostrará el PID del agente SSH que se ha iniciado. Por ejemplo
Agent pid 12345
. -
Agrega tu clave privada al agente:
ssh-add ~/.ssh/id_rsa
Si has configurado una contraseña, se te pedirá que la ingreses. De lo contrario, verás un mensaje indicando que la clave ha sido agregada algo como
Identity added: /home/usuario/.ssh/id_rsa (tu_correo_ejemplo@example.com)
.
4. Agregar la clave SSH pública a GitHub
Ahora, necesitas agregar tu clave pública a GitHub:
-
Copiar la clave pública:
cat ~/.ssh/id_rsa.pub
Copia el contenido completo que se muestra.
-
Agregar la clave a GitHub:
- Inicia sesión en tu cuenta de GitHub.
- Ve a Configuración > SSH and GPG keys > New SSH key o haz clic aquí.
- Pon un título descriptivo (por ejemplo, “Clave SSH de mi PC”) y pega tu clave pública en el campo correspondiente.
- Haz clic en Add SSH key.
Si estas usando en GitHub autenticación de dos factores, es posible que necesites generar un token de acceso personal para autenticar la clave SSH.
5. Probar la conexión con GitHub
Para verificar que todo funciona correctamente, en tu terminal ejecuta:
ssh -T git@github.com
-
La primera vez, es posible que recibas una advertencia sobre la autenticidad del host. Escribe
yes
y presiona Enter. -
Deberías ver un mensaje como:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
Solución de problemas comunes
Permisos incorrectos en el directorio .ssh
Si recibes un error sobre los permisos del directorio .ssh
:
-
Asegúrate de que solo tu usuario pueda leer y escribir en ese directorio:
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub
Agente SSH no está corriendo
Si el agente SSH no está corriendo, puedes iniciarlo con:
eval "$(ssh-agent -s)"
Vídeo Tutorial
Si eres una persona visual, aquí tienes un vídeo tutorial que te guiará a través de los pasos para generar y configurar claves SSH para Git y GitHub:
En este vídeo se cubren todos los pasos detallados anteriormente, además de consejos adicionales para asegurar y gestionar tus claves SSH de manera efectiva.
Conclusión
Has generado y configurado con éxito una clave SSH para usar con Git y GitHub. Ahora puedes interactuar con tus repositorios remotos de forma segura y sin necesidad de ingresar tus credenciales cada vez. Esto no solo mejora la seguridad sino también la eficiencia en tu flujo de trabajo.
¡Disfruta de una experiencia más fluida con Git y sigue explorando más funcionalidades avanzadas!