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).
🧱 ¿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
Deberías ver archivos como:
id_ed25519
id_ed25519.pub
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"
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)"
Ahora agrega tu llave privada:
ssh-add ~/.ssh/id_ed25519
(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
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
Agrega:
Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_personal
IdentitiesOnly yes
Con esto puedes hacer:
ssh -T github
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
Esto te da un log detallado. Busca si está intentando con tu clave correcta.
O mejor, usa tu alias:
ssh -T github
👨💻 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
También puedes cambiar una URL existente de HTTPS a SSH:
git remote set-url origin git@github.com:tu_usuario/tu_repositorio.git