Par Anonyme (non vérifié) , 29 avril 2026

Le cas de la signature SSH

GPG est puissant mais opérationnellement pénible. Depuis Git 2.34, vous pouvez signer commits et tags avec les clés SSH que vous utilisez déjà pour push. Pas de keyring, pas de jonglerie de passphrase, pas de réseau de confiance séparé. GitHub, GitLab, Gitea et Forgejo acceptent tous les commits signés SSH.

Configuration

git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519.pub
git config --global commit.gpgsign true
git config --global tag.gpgsign true

Fichier des signataires autorisés

cat > ~/.config/git/allowed_signers <<EOF
[email protected] ssh-ed25519 AAAA... alice
[email protected]   ssh-ed25519 AAAA... bob
EOF
git config --global gpg.ssh.allowedSignersFile ~/.config/git/allowed_signers

Vérification

git log --show-signature
git verify-commit HEAD
git verify-tag v1.0.0

Clés appuyées par le matériel

OpenSSH supporte les clés FIDO/U2F (ssh-keygen -t ed25519-sk).

Révocation

git config --global gpg.ssh.revocationFile ~/.config/git/revoked_keys

Erreurs courantes

Email mal apparié entre auteur du commit et entrée allowed signers. Pointer user.signingkey vers un chemin de clé privée ; vous voulez la .pub.

Environnements mixtes

Les commits SSH-signés et GPG-signés peuvent coexister dans un repo.