cover

Cómo añadir una llave SSH a Github


Mira el video si prefieres:

Hace poquito hube de clonar el repo de easybits en más de una computadora y me encontré con que necesito dar de alta una llave SSH (Secure Shell Protocol) nueva, para poder leer y escribir en mi repositorio de Github; además de que este método de llaves SSH es el recomendado por el propio Github. Así que, tuve que crearla en mi terminal, añadirla a mis credenciales ahí mismo y luego, actualizar mi cuenta de Github para que utilice la nueva llave que he creado, y bueno, me di cuenta de que esta operación no es tan obvia y quise enseñarte aquí cómo hacerlo paso a pasito.

¿Qué te parece, quieres aprender a hacerlo en tan solo 3 pasitos? 🚶🏻‍♀️

¡Vamos pues! 🧋

👀 ¡Ojo! En mi caso lo estoy haciendo en una Mac, pero el método es muy similar para Linux, en Windows creo también. 🤷🏻‍♂️ Pero, te dejo los docs.

Primer paso: Generando la llave en la terminal

Primero, hay que generar una llave especial. Afortunadamente, nuestra terminal ya sabe cómo: existe un comando muy fácil de usar que nos puede ayudar no solo con este tipo de llaves, también con otras muchas que podemos usar para conectarnos de forma segura con otros servidores, muy old-school pero bien seguro. 🧷

ssh-keygen -t ed25519 -C "blissitos@gmail.com" Generating public/private ed25519 key pair. Enter file in which to save the key (/Users/bliss/.ssh/id_ed25519): Created directory '/Users/bliss/.ssh'. Enter passphrase for "/Users/bliss/.ssh/id_ed25519" (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /Users/bliss/.ssh/id_ed25519 Your public key has been saved in /Users/bliss/.ssh/id_ed25519.pub The key fingerprint is: SHA256:bwVi4MD9qqzGO6y+B4HPmHw4hyBq3yq1UOIdl4DtCg0 blissitos@gmail.com The key's randomart image is: +--[ED25519 256]--+ | o.... | |E. o.o.. | |.o. . o.o . | |=o.+ o ... . | |B=O o .S . | |+@o= . . . | |.oO.o. o | | .=+o. . | |o=*=. | +----[SHA256]-----+

El comando es ssh-keygen y el tipo de llave es ed25519, que, ¡es un algoritmo basado en una curva de elipse! ¿Qué loco no? 🤪 

Y bueno, le añadimos el dato de nuestro correo que usamos con Github y escribimos un password fácil de recordar, dos veces. ✅

👀 Antes se usaban otro tipo de llaves: RSA. Pero Ed25519 es más corta y más rápida incluso que ECDSA. 🤯

Segundo paso: Añadiendo la llave al agente SSH de tu computadora

Ahora, existe un agente que se dedica a mantener las llaves, es como el amo de llaves de tu computadora. 🛎️ Entonces, primero hay que asegurarnos de que anda por ahí chambiando en segundo plano.

$ eval "$(ssh-agent -s)" > Agent pid 59566

En este punto, hay una serie de comandos que pueden funcionar, pero, como programador lo que prefiero es poner mis llaves en un archivo de configuración. 😎 Por eso creamos ~/.ssh/config.

Host github.com AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_ed25519

Lo último que nos falta aquí es: decirle a nuestro agente que añada nuestra llave al llavero. 🔑

ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Para ello, usamos el comando ssh-add —apple-use-keychain, indicando dónde está la llave.

Paso final: Publicando el par público en la configuración de Github

Es hora de terminar con lo más sencillo: añadir nuestra nueva llave a la configuración de nuestra cuenta de Github. 👌🏼

Para ello:

  1. Primero, vamos a la sección de configuración de nuestra cuenta de Github.
  2. Luego entramos a SSG and GPG keys
  3. Daremos entonces, clic a new SSH key
  4. Ahí pegaremos nuestra llave pública que podemos leer con el comando cat. Es importante que sea la llave pública del par que se genero en .ssh, la que termina en .pub.
  5. Github te pedirá que insertes un código de seguridad que antes te habrá pedido configurar como factor de autenticación de dos pasos.

ssh key on github

¡Y ya está! Es momento de probar que podemos clonar ¡y hacer un push! 🎶

Probando que todo funciona

Para probar que todo funciona, vamos a clonar el repo de easybits, hacerle un pequeño cambio e intentar hacer un push a la branch main de mi repo. 🧐 Pero, vamos a usar el link para SSH.

ssh github

Toma en cuenta que la primera vez que se usa esta llave, nos informará con varias advertencias, it’s ok, todo está en orden. 😉

Agregamos un cambio pequeño para probar que podemos leer y escribir en nuestro repo; en mi caso aún no he configurado Git en esta computadora, pero tú, ya identificado correctamente en Git seguro tendrás un resultado más limpio en la consola. ⬛️

👌🏼 Esta, es una forma de estar super-seguros de que solo nosotros podremos hacer push a nuestros repos; aún cuando sean públicos u open-source.

Espero esto te sea de alguna utilidad. Si así fue, no dejes de suscribirte para que te avise de todo lo nuevo.

👀 En caso de que tu equipo no soporte Ed25519, usa una RSA: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Abrazo. Bliss. 🤓

Enlaces relacionados

Docs de Github

Más sobre SSH

meta cover

3 Actualizaciones interesantes de React 19

Checa este otro Post

meta cover

El mejor Stack del 2024: Hono + Vite + TailwindCSS

Checa este otro Post

¡Nuevo curso!

Animaciones web con React + Motion 🧙🏻