Firma tus commits de git con GPG


El objetivo de esta entrada no es más que resumir los pasos que haríamos para empezar a usar git en nuestro PC. Linux, por supuesto. Básicamente en esta entrada veremos cómo setear los parámetros mínimos de configuración global, y cómo dejarlo listo para poder firmar nuestros commits (en GitHub), para que el resto de compañeros puedan confiar en que nuestros commits han estado hechos, en efecto, por nosotros.

Setear nuestro usuario en la conf global de git

Lo primero para empezar a usar git en nuestro sistema es setear nuestro usuario y email. Lo haremos en la configuración global de git y básicamente seguiremos los pasos aquí descritos.

Vale, ¿pero qué es la configuración global? En git, básicamente, contamos con tres niveles de configuración:

  • /etc/gitconfig: Contiene los valores que se aplican a todos los usuarios del sistema y a sus repositorios. Este es el fichero que se modifica/consulta al pasarle la opción “–system” al hacer “git config”. Requiere permisos de superusuario.
  • ~/.gitconfig or ~/.config/git/config: Define los valores configurados para tí, el usuario. Aquí usaríamos la opción “–global” en el “git config”.
  • .git/config: finalmente, tenemos el fichero config dentro del propio repo de git. Define los valores específicos para ese repositorio.

GPG

Ahora que hemos seteado quién somos, en nuestra configuración global de git, podemos pasar a ver qué hace falta para firmar nuestros commits con GPG.

Si no hemos hecho nada respecto a las claves GPG, al ejecutar el comando gpg por primera vez, se nos crearán la estructura y ficheros de configuraciones iniciales.

Podremos generar nuestra primera clave tal y como sigue:

Si has probado de realizar este proceso en un mac y estás teniendo problemas, visita este enlace.

Durante el proceso de creación de nuestra clave, como vemos, deberemos introducir el tipo de clave, la longitud, así como nuestros detalles. Una vez lo tengamos, ya podremos volver a ejecutar el comando “gpg –list-keys” o mejor aun, listarlo con formato LONG.

Con “list-keys” se nos mostrará una entrada para la clave PUBlica, el UserID, y SUBkey. [+info]

En cualquier caso, podemos volver a listar las claves con formato LONG, para ya así pasar a exportarlas:

Con el comando anterior, mostraremos por pantalla la clave pública que deberemos copiar en nuestro perfil de GitHub. Una vez seteada nuestra clave pública en nuestro perfil de GitHub volveremos a usar la configuración global de git para setear la key con la que cifraremos los commits:

A partir de entonces, ya podremos empezar a firmar nuestros commits con el flag “-S”:

O aun mejor, seteando la variable global commit-gpgsign a true, para no tener que recordar usar la opción “-S” al commitear y por tanto, por defecto firmar todos nuestros commits:

Fuentes:

https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work
https://help.github.com/articles/signing-commits-with-gpg/
https://help.github.com/articles/adding-a-new-gpg-key-to-your-github-account/
https://help.github.com/articles/generating-a-new-gpg-key/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *