El método con token funciona, pero tiene una pega: caduca. Cuando eso pasa, tienes que volver a generarlo y actualizarlo. No es dramático, pero hay una forma mejor.
SSH es el método que usan los equipos profesionales. Una vez configurado, no vuelve a pedirte nada. Haces push y listo.
La idea es más sencilla de lo que parece. SSH genera dos ficheros que funcionan como una cerradura y su llave:
- Llave privada (
id_ed25519): se queda en tu máquina. Nunca la compartas con nadie. - Llave pública (
id_ed25519.pub): se sube a GitHub. Es la cerradura.
Cuando haces un push, tu máquina demuestra que tiene la llave que encaja con la cerradura registrada en GitHub. Sin contraseñas, sin tokens, sin que nada secreto salga de tu ordenador.
Antes de generar nada, comprueba si ya tienes un par de llaves:
ls ~/.sshSi ves ficheros id_ed25519 e id_ed25519.pub ya las tienes y puedes saltar al siguiente apartado. Si la carpeta no existe o está vacía, continúa.
Ejecutamos el comando para generar las llaves:
ssh-keygen -t ed25519 -C "tu-email@ejemplo.com"El comando te hará dos preguntas:
- Ruta donde guardar la llave: pulsa Enter para aceptar la ruta por defecto (
~/.ssh/id_ed25519). - Passphrase: una contraseña opcional para proteger la llave privada. Puedes dejarla vacía pulsando Enter dos veces.
Ahora arrancamos el agente SSH y le añadimos la llave que acabamos de generar. El agente es un programa que corre en segundo plano y se encarga de que no tengas que repetir este paso cada vez que abras la terminal:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519Agent pid 12345
Identity added: /home/usuario/.ssh/id_ed25519 (tu-email@ejemplo)Mostramos el contenido de la llave pública:
cat ~/.ssh/id_ed25519.pubCopia todo el texto que aparece. Empieza por ssh-ed25519 y termina con tu email.
Entramos en github.com, hacemos clic en el avatar y seleccionamos Settings.
En el menú lateral izquierdo hacemos clic en SSH and GPG keys.
Hacemos clic en New SSH key.
Rellenamos los campos:
- Title: un nombre descriptivo, por ejemplo
pc-personal. - Key type:
Authentication Key(valor por defecto). - Key: pegamos aquí el contenido que copiamos antes.
Hacemos clic en Add SSH key.
GitHub confirma que la llave se ha añadido correctamente.
Antes de hacer el primer push, comprobamos que todo funciona:
ssh -T git@github.comSi es la primera vez que te conectas a GitHub por SSH, verás un mensaje preguntando si confías en el servidor. Es normal, no es un error. Escribe yes y pulsa Enter.
La respuesta correcta es:
Hi tu-usuario! You've successfully authenticated, but GitHub does not provide shell access.Cuando usamos SSH, la URL del repositorio remoto tiene un formato diferente al de HTTPS. Actualizamos el remote para que apunte a la dirección SSH:
git remote set-url origin git@github.com:tu-usuario/mi-proyecto.gitY hacemos push. Verás que no pide nada:
git push origin mainEnumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 16 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 288 bytes | 288.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:tu-usuario/mi-proyecto.git
7013a5f..acdb4f7 main -> mainSin contraseñas, sin tokens, sin interrupciones.
Y con esto terminamos esta sección. Ahora tienes Git instalado, configurado, y sabes conectarlo con GitHub de tres formas distintas. Elige la que mejor se adapte a tu flujo de trabajo, aunque si me preguntas a mí, quédate con SSH.





