Firmas y cifrado con GPG

Después de 10 años de cuidar mi clave privada GPG, finalmente la perdí en esta última mudanza y reinstalación.

Todavía es posible que al terminar de desempacar me encuentre en algún lugar el certificado de revocación y les ancianes del internet me vuelvan a recibir para tomar te. Por ahora necesito una clave nueva para firmar mis commits en git, más que nada. Antes la usaba para firmar y cifrar mis correos, pero eso ya pasó de moda y casi no se usa.

Esta es la milpa digital de gpg:

Y el colectivo disonancia tiene un cursito de GPG muy lindo:

Aquí solo voy a poner los conjuros que voy usando.

Conjuros

El programa gpg ya viene listo con mi instalación de Debian.

Mostrar la ayuda:

$ gpg --help

Generar un par de claves pública y privada:

$ gpg --full-generate-key

Quiero usar RSA and RSA (default),
de 4096 bits,
y que expire en 10y, 10 años. Estoy bastante seguro que en 10 años la voy a perder de nuevo.
Este paso hay que confirmarlo.

Lo que sigue es la identidad asociada al par de claves. Para esto voy a usar mi identidad real, mi nomber completo y mi dirección de correo pública. También puedo ponerle un comentario opcional. Voy a poner de comentario personal, para luego agregarle mi correo de trabajo y tal vez algunas otras identidades.

Finalmente el programa necesita acumular entropía para hacer una clave segura. Aquí es nada más ponerse a hacer otra cosa en la computadora, mover el ratón, escribir en el teclado. Después de un rato regresamos y el par de claves están listas.

pub   rsa4096 2024-11-27 [SC] [expires: 2034-11-25]
      12053EF2FA4B99679B65F22D314CACB1BB378288
uid                      Leonardo Arias Fonseca (personal) <yo@elopio.net>
sub   rsa4096 2024-11-27 [E] [expires: 2034-11-25]

El certificado de revocación me lo generó en /home/elopio/.gnupg/openpgp-revocs.d/12053EF2FA4B99679B65F22D314CACB1BB378288.rev. Este es importante guardarlo en un lugar seguro, que no se pierda por 10 años.

La huella digital de mi clave GPG es ese número hexadecimal largo: 12053EF2FA4B99679B65F22D314CACB1BB378288. Este número es importante para ejecutar los siguientes comandos.

Para exportar el identificador de la clave:

$ gpg --armor --export <huella-digital>

Esto imprime un texto largo que es lo que voy a copiar en github y gitlab para que puedan verificar el código que firmo con esta clave.