Skip to content

Latest commit

 

History

History
139 lines (87 loc) · 4.37 KB

File metadata and controls

139 lines (87 loc) · 4.37 KB

Curso: Dominando Git y la Conexión con la Nube

Introducción

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.

¿Cómo funciona SSH?

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.

Generando las llaves SSH

Antes de generar nada, comprueba si ya tienes un par de llaves:

ls ~/.ssh

Si 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_ed25519
Agent pid 12345
Identity added: /home/usuario/.ssh/id_ed25519 (tu-email@ejemplo)

Añadiendo la llave pública a GitHub

Mostramos el contenido de la llave pública:

cat ~/.ssh/id_ed25519.pub

Copia 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.

Menú de usuario en GitHub

En el menú lateral izquierdo hacemos clic en SSH and GPG keys.

Sección SSH and GPG keys

Hacemos clic en New SSH key.

Botón 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.

Formulario para añadir la llave SSH

GitHub confirma que la llave se ha añadido correctamente.

Llave SSH añadida en GitHub

Verificando la conexión

Antes de hacer el primer push, comprobamos que todo funciona:

ssh -T git@github.com

Si 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.

Haciendo push por SSH

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.git

Y hacemos push. Verás que no pide nada:

git push origin main
Enumerating 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 -> main

Sin 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.