Cómo configurar las claves SSH de Git

Cuando se trabaja con Git usando la línea de comando, la forma más común de manejar la autenticación es mediante el uso de claves SSH. Descubra cómo configurarlos.

Cuando se trabaja con Git usando la línea de comando, la forma más común de manejar la autenticación es mediante el uso de claves SSH.

La mayoría de los clientes basados en GUI como GitHub Desktop se encargarán de esto por usted, pero a veces necesita la línea de comandos, por lo que es muy útil tener una configuración de clave SSH en su lugar.

Además, a veces necesitará una clave SSH para hacer cosas útiles como extraer un repositorio en un servidor remoto.

Teclas en tu computadora

Las claves SSH se almacenan en el~/.sshcarpeta.

Puede tener más de una clave allí, porque las claves SSH se utilizan para otras cosas además de Git.

Puede enumerar todas sus claves SSH escribiendo

ls -al ~/.ssh

Si tiene claves existentes, notará que se encuentran en pares, un archivo y otro con un nombre similar que terminan en.pub:

Existing SSH keys

los.pubEl archivo contiene la clave pública, mientras que el otro archivo contiene la clave privada que nunca debe compartirse en ningún lugar.

Nunca debe compartir la clave privada en ningún lugar. Si pierde la clave privada, tendrá que volver a generar un nuevo par de claves pública / privada, ya que la autenticación no se puede completar con éxito sin la parte de la clave privada.

Generando una nueva clave

Generas una nueva clave SSH usando el comandossh-keygen, que está disponible en todas las computadoras macOS, Linux y Windows modernas con el subsistema Linux oGit para Windowspaquete.

Aquí está el comando que usa:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

La última parte, que en este ejemplo se completa con una dirección de correo electrónico, es un comentario. Puede ingresar cualquier correo electrónico que desee, no tiene que ser su cuenta de GitHub o incluso puede ser una cadena aleatoria. Puede ser útil saber quién generó la clave si existe la posibilidad de ambigüedad.

El programa de generación de claves le preguntará dónde desea guardar la clave. Si esta es la primera clave, se sugiere utilizarid_rsacomo nombre de archivo, pero será mejor que elija un nombre de archivo que le recuerde el servicio para el que lo está generando, comogithub_rsa.

Opcionalmente, puede agregar una contraseña. Recomiendo encarecidamente configurar la contraseña. macOS almacenará la contraseña en el llavero para que no tengas que repetirla cada vez.

Agrega la clave a GitHub

Muestro el proceso para GitHub, pero es el mismo tipo de proceso que usa cada plataforma Git, con pequeñas diferencias.

En la configuración de GitHub, encontrará el menú "Claves SSH y GPG":

Al hacer clic en él, se revela su configuración actual:

Como puede ver aquí, definí 3 claves SSH, una que uso localmente en mi mac y 2 que uso en los servidores remotos para extraer el código del sitio web.

Presionar "Nueva clave SSH" le permite agregar una nueva:

Establece que el título sea algo significativo, que recordará dentro de 2 años o más.

La clave es la que generaste antes.

Puedes abrir el.pubarchivo de la clave, copie su contenido y péguelo en este cuadro.

Puede hacerlo usando cualquier comando CLI comocat id_rsa.puby copia / pega todo el código de la tecla con el mouse.

Una vez que guarde esa cadena en GitHub (o cualquier otro servicio, ya que el concepto es el mismo para todos), su cliente Git tendrá las credenciales que necesita para comunicarse con el servidor de eliminación, ¡y debería estar listo para comenzar!

Usando múltiples claves

Se recomienda utilizar una clave SSH diferente para cada servicio que pretenda utilizar.

Esto hace que sea muy fácil invalidar una clave en un servicio específico sin tener que cambiarla en todos los servicios que usa si decide renovarla, ya sea porque está comprometida / expuesta públicamente o por alguna otra razón.