Da Anonimo (non verificato) , 29 Aprile 2026

Il caso per la firma SSH

GPG e potente ma operativamente doloroso. Da Git 2.34, e possibile firmare commit e tag con le chiavi SSH gia usate per il push. Niente keyring, niente giochi di passphrase.

Setup

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

File degli allowed signers

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

Verifica

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

Chiavi hardware

OpenSSH supporta chiavi FIDO/U2F (ssh-keygen -t ed25519-sk).

Revoca

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

Errori comuni

Email non corrispondenti tra autore del commit e voce in allowed signers. Puntare user.signingkey a un percorso di chiave privata; serve il .pub.

Ambienti misti

Commit firmati SSH e GPG possono coesistere. I verificatori necessitano di entrambi.