Usar Yubikey con git

Publicado el mié 15 noviembre 2017

Este post es la parte 4 de la serie "Yubikey en Fedora":

  1. Configurar una Yubikey con GnuPG en Fedora
  2. Configuraciones adicionales de Yubikey como Smartcard
  3. Usar llave GnuPG en Yubikey desde Evolution
  4. Usar Yubikey con git
  5. Usar Yubikey para SSH

Hoy veremos como usar GPG desde git para firmar los commits y tags. Lo que acá se detalla sirve para llaves GPG almacenadas en el disco como con las llaves GPG almacenadas en una Yubikey.

Definir la llave GPG a usar

Debemos indicar a git qué llave GPG usar y qué programa usar para ello

git config user.signingkey AABBCCDD
git config gpg.program gpg2

Debemos reemplazar AABBCCDD por los últimos 8 caracteres del hash de la llave a usar. El comando anterior aplica sobre el repositorio donde estamos parado. Si queremos que sea transversal debemos usar git config --global ....

Firmar

Para firmar un commit usamos -S. Nos pedirá el PIN de llave, excepto si ya ha sido puesto hace poco.

git commit -S -m "commit firmado"
[master 2a63c1c] commit firmado
1 file changed, 1 insertion(+)

Para firmar un tag usamos -s

git tag -m "hola" -s hola-01

Validar

Para validar la firma de un commit usamos:

git verify-commit AABBCCDD
gpg: Firmado el mar 14 nov 2017 23:17:48 -03
gpg:                usando RSA clave 8D8DD5B504174EB84F7252D7A6278805BCDDF093
gpg: Firma correcta de "Eduardo Andrés Villagrán Morales <evillagr@fedoraproject.org>" [absoluta]

Reemplazamos AABBCCDD por el hash del commit.

Para validar la firma de un tag usamos -v

git tag -v hola-01
object af6fbd0eaef32965dd401865794c50d1f392143a
type commit
tag hola-01
tagger Eduardo Villagrán Morales <evillagr@fedoraproject.org> 1510711321 -0300

hola
gpg: Firmado el mar 14 nov 2017 23:02:01 -03
gpg:                usando RSA clave 8D8DD5B504174EB84F7252D7A6278805BCDDF093
gpg: Firma correcta de "Eduardo Andrés Villagrán Morales <evillagr@fedoraproject.org>" [absoluta]

tags: fedora, gnupg, yubikey, git