Conexión SSH con GitHub
En el Bloque 101 conectaste tu repositorio local con GitHub usando HTTPS, lo que significa que cada vez que haces git push (o la primera vez, si usas un gestor de credenciales) GitHub te pide identificarte con un token de acceso personal. Una alternativa más cómoda a largo plazo es usar SSH: configuras una vez un par de claves en tu equipo y, a partir de ahí, git push/git pull funcionan sin pedirte usuario ni contraseña.
Este anexo te guía paso a paso para configurarlo tú mismo. Todos los comandos se ejecutan en la terminal integrada de VSCode (la misma que ya usas para git).
No es obligatorio migrar a SSH: HTTPS con token sigue funcionando perfectamente. SSH es simplemente más cómodo si vas a hacer muchos push a lo largo del curso, porque te evita reintroducir credenciales.
Paso 1. Comprueba si ya tienes una clave SSH
Antes de crear una clave nueva, comprueba si ya existe alguna en tu equipo:
ls -al ~/.ssh
Si ves ficheros como id_ed25519 y id_ed25519.pub (o id_rsa/id_rsa.pub), ya tienes una clave y puedes saltar directamente al Paso 3. Si la carpeta no existe o no contiene ninguna clave, continúa con el siguiente paso.
Paso 2. Genera una nueva clave SSH
ssh-keygen -t ed25519 -C "tu-correo@ejemplo.com"
- Usa el mismo correo con el que te registraste en GitHub (el mismo que configuraste en
user.emailen el Bloque 101). - Cuando te pregunte dónde guardar el fichero (
Enter a file in which to save the key...), pulsa ⏎ para aceptar la ubicación por defecto. - Cuando te pida una contraseña (passphrase) para la clave, puedes pulsar ⏎ dos veces para dejarla vacía (más cómodo para empezar) o escribir una si quieres una capa extra de seguridad.
Esto genera dos ficheros dentro de ~/.ssh/:
id_ed25519: tu clave privada. Nunca la compartas ni la subas a ningún repositorio.id_ed25519.pub: tu clave pública. Esta es la que vas a subir a GitHub.
Paso 3. Añade la clave al agente SSH
El agente SSH es un proceso que mantiene tu clave lista para usarse sin que tengas que indicarla en cada comando:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Si tenías una clave con otro nombre (por ejemplo id_rsa), sustituye id_ed25519 por el nombre correspondiente en este comando y en los siguientes.
Paso 4. Copia tu clave pública
Muestra el contenido de tu clave pública en la terminal:
cat ~/.ssh/id_ed25519.pub
Selecciona toda la línea que se muestra (empieza por ssh-ed25519 y termina por tu correo electrónico) y cópiala con CTRL+C.
Si prefieres no seleccionar el texto a mano, puedes copiarlo directamente con un único comando, según tu sistema operativo:
- Windows (Git Bash):
clip < ~/.ssh/id_ed25519.pub - macOS:
pbcopy < ~/.ssh/id_ed25519.pub - Linux:
xclip -selection clipboard < ~/.ssh/id_ed25519.pub(si no tienesxclipinstalado, usa la selección manual)
Paso 5. Añade la clave a tu cuenta de GitHub
- En github.com, entra en tu perfil (esquina superior derecha) → Settings.
- En el menú lateral, entra en SSH and GPG keys.
- Pulsa New SSH key.
- En Title, ponle un nombre que te ayude a identificar el equipo (por ejemplo,
PC Aula 113). - En Key, pega la clave pública que copiaste en el paso anterior.
- Pulsa Add SSH key.
Paso 6. Comprueba que la conexión funciona
ssh -T git@github.com
La primera vez te preguntará si confías en el host (Are you sure you want to continue connecting?); responde yes y pulsa ⏎. Si todo ha ido bien, verás un mensaje parecido a:
Hi <tu-usuario>! You've successfully authenticated, but GitHub does not provide shell access.
Ese mensaje es la confirmación de que la autenticación SSH funciona correctamente (el aviso de que "no provee acceso a shell" es normal y esperado, no es un error).
Paso 7. Usa SSH en tus repositorios
Para un repositorio nuevo que todavía no tienes en local, clónalo usando la URL SSH en lugar de la HTTPS (en GitHub, botón Code → pestaña SSH, en vez de HTTPS):
git clone git@github.com:<tu-usuario>/<nombre-repo>.git
Para un repositorio que ya configuraste con HTTPS (como el del Bloque 101), no hace falta clonarlo de nuevo: basta con cambiar la URL de su remoto:
git remote set-url origin git@github.com:<tu-usuario>/<nombre-repo>.git
Comprueba que el cambio se ha aplicado:
git remote -v
Deberías ver origin apuntando ahora a una URL que empieza por git@github.com: en lugar de https://github.com/. A partir de aquí, git push/git pull ya no te pedirán usuario ni token.
Solución de problemas
Permission denied (publickey)Este error significa que GitHub no reconoce tu clave. Comprueba, en orden:
- Que copiaste la clave pública completa, sin cortar ningún carácter (Paso 4).
- Que la clave sigue añadida al agente: repite el Paso 3 (
ssh-add ~/.ssh/id_ed25519) — el agente se reinicia si cierras la terminal. - Que el remoto del repositorio usa la URL SSH (
git@github.com:...) y no la HTTPS: revísalo congit remote -v.
Si tras revisar estos tres puntos sigue sin funcionar, pide ayuda al profesorado.