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 <[email protected]>" [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 <[email protected]>" [absoluta]