Saltar al contenido

Cómo generar y configurar claves SSH para Git y GitHub

Publicado: at 06:00

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?

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:

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

Usos

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"

Durante la generación:

Después de completar, se generará un par de claves:

Generar clave SSH

3. Agregar la clave SSH al agente SSH

Para permitir que tu sistema use la clave SSH, necesitas agregarla al agente SSH:

  1. Inicia el agente SSH:

    eval "$(ssh-agent -s)"

    Esto mostrará el PID del agente SSH que se ha iniciado. Por ejemplo Agent pid 12345.

  2. 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:

  1. Copiar la clave pública:

    cat ~/.ssh/id_rsa.pub

    Copia el contenido completo que se muestra.

    Copiar clave SSH

  2. 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.

    Agregar clave SSH a GitHub

    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

Solución de problemas comunes

Permisos incorrectos en el directorio .ssh

Si recibes un error sobre los permisos del directorio .ssh:

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!