Usar Yubikey con git

Posted on mié 15 noviembre 2017

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]