Saltar al contenido
ecdsa.com

Firma de commits de Git

La firma de commits y etiquetas de Git con claves OpenPGP, SSH (desde Git 2.34) o X.509 para que las plataformas de alojamiento y los revisores puedan verificar quién los creó; se configura con gpg.format y user.signingkey.
También se escribesigned commitsgit commit -Sgpg.format sshgitsignverified commits

Configura git config gpg.format ssh (u openpgp, x509), user.signingkey y commit.gpgsign true; verifica con git log --show-signature o git verify-commit. La verificación SSH necesita gpg.ssh.allowedSignersFile, que enumera las identidades (principals) y sus claves. Git firma el propio objeto commit, que abarca el árbol y los commits padre, pero no los rebases posteriores, que crean commits nuevos que necesitan firmas nuevas.

GitHub y GitLab muestran la insignia Verified cuando la firma corresponde a una clave registrada en la cuenta de quien hizo el commit (las claves de firma SSH se registran por separado de las claves de autenticación), y la protección de ramas puede exigir commits firmados. gitsign firma commits sin claves (keyless) con Sigstore. Una firma demuestra qué clave firmó, no que el código sea bueno, y las plataformas vuelven a firmar con sus propias claves las fusiones hechas desde la interfaz web.

Estándares y referencias

Todos los términos