3.2 Autenticación SSH¶
Con SSH te identificas con un par de claves: la pública se registra en GitHub y la privada se queda en tu equipo. La privada nunca se comparte ni se sube a un repositorio.
1. Comprobar si ya tienes una clave¶
ls -al ~/.ssh
Si ves un archivo id_ed25519.pub, ya tienes una. Si no, genera una.
2. Generar la clave¶
ssh-keygen -t ed25519 -C "tu-correo@example.com"
- Acepta la ruta propuesta (
~/.ssh/id_ed25519). - Te pide una frase de paso (passphrase) para proteger la clave privada. En un equipo compartido, ponla. En tu equipo personal puedes dejarla vacía.
3. El agente SSH (opcional)¶
Con frase de paso, el agente guarda la clave desbloqueada para no escribirla en cada operación:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
4. Registrar la clave pública en GitHub¶
- Muestra la pública y cópiala entera:
cat ~/.ssh/id_ed25519.pub
- En GitHub: Settings → SSH and GPG keys → New SSH key, pega la clave y ponle un nombre.
Pública sí, privada nunca
Copia siempre el archivo que termina en .pub. El que no lo lleva es la clave privada.
5. Probar la conexión¶
ssh -T git@github.com
La primera vez pregunta si confías en el servidor; responde yes. Debe contestar con un saludo con tu usuario.
6. Cambiar el remoto de HTTPS a SSH¶
git remote -v
git remote set-url origin git@github.com:usuario/mi-proyecto.git
git remote -v
git push
Si tu red bloquea el puerto 22¶
Algunas redes (aulas, empresas) bloquean el puerto 22 de SSH. GitHub admite SSH por el puerto 443. En ~/.ssh/config:
Host github.com
Hostname ssh.github.com
Port 443
User git
y vuelve a probar ssh -T git@github.com.