DEV Community

taypedev
taypedev

Posted on

🔐 Git + GitHub con SSH: Guía paso a paso (y sin morir en el intento)

Configurar SSH con GitHub puede parecer confuso la primera vez, pero una vez lo haces, te olvidas de introducir tu usuario y contraseña una y otra vez. En este post te enseño cómo hacerlo desde cero y cómo resolver errores típicos como el infame:

git@github.com: Permission denied (publickey).
Enter fullscreen mode Exit fullscreen mode

🧱 ¿Por qué usar SSH en vez de HTTPS?

  • Mayor seguridad
  • Evitas tener que poner usuario/contraseña cada vez
  • Ideal para entornos de desarrollo profesional

🛠️ Paso 1: Verifica si ya tienes una clave SSH

Abre tu terminal o PowerShell y ejecuta:

ls ~/.ssh
Enter fullscreen mode Exit fullscreen mode

Deberías ver archivos como:

id_ed25519
id_ed25519.pub
Enter fullscreen mode Exit fullscreen mode

Si no los tienes, ¡no te preocupes! Los creamos en el siguiente paso.


🔑 Paso 2: Crea una nueva clave SSH

ssh-keygen -t ed25519 -C "tu-correo@ejemplo.com"
Enter fullscreen mode Exit fullscreen mode

Presiona Enter para aceptar el nombre por defecto (id_ed25519) o usa uno personalizado como id_ed25519_personal.


💻 Paso 3: Agrega la clave al agente SSH

Primero inicia el agente:

eval "$(ssh-agent -s)"
Enter fullscreen mode Exit fullscreen mode

Ahora agrega tu llave privada:

ssh-add ~/.ssh/id_ed25519
Enter fullscreen mode Exit fullscreen mode

(Reemplaza con el nombre correcto si usaste uno distinto)


🌐 Paso 4: Agrega tu clave pública a GitHub

Copia tu clave pública:

cat ~/.ssh/id_ed25519.pub
Enter fullscreen mode Exit fullscreen mode

Ve a GitHub > Settings > SSH and GPG keys

Haz clic en "New SSH key", ponle un nombre (ej: "Laptop Personal") y pega la clave pública.

Guarda.


🧭 Paso 5: Configura tu archivo ~/.ssh/config (opcional pero recomendado)

Si tienes varias llaves (ej: personal y trabajo), o usaste un nombre personalizado, crea o edita este archivo:

code ~/.ssh/config
Enter fullscreen mode Exit fullscreen mode

Agrega:

Host github
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal
  IdentitiesOnly yes
Enter fullscreen mode Exit fullscreen mode

Con esto puedes hacer:

ssh -T github
Enter fullscreen mode Exit fullscreen mode

Y GitHub debería responder:

Hi tu_usuario! You've successfully authenticated, but GitHub does not provide shell access.


🐛 ¿Error? "Permission denied (publickey)"

git@github.com: Permission denied (publickey).

Solución rápida:

Asegúrate de que Git está usando la clave correcta.

Ejecuta:

ssh -vT git@github.com
Enter fullscreen mode Exit fullscreen mode

Esto te da un log detallado. Busca si está intentando con tu clave correcta.

O mejor, usa tu alias:

ssh -T github
Enter fullscreen mode Exit fullscreen mode

👨‍💻 Paso 6: Usa SSH con Git

Cuando clones un repo, usa la URL SSH, no HTTPS:

git clone git@github.com:tu_usuario/tu_repositorio.git
Enter fullscreen mode Exit fullscreen mode

También puedes cambiar una URL existente de HTTPS a SSH:

git remote set-url origin git@github.com:tu_usuario/tu_repositorio.git
Enter fullscreen mode Exit fullscreen mode

Top comments (0)