Der Fall fur SSH-Signierung
GPG ist machtig, aber operativ schmerzhaft. Seit Git 2.34 konnen Sie Commits und Tags mit den SSH-Schlusseln signieren, die Sie bereits zum Pushen verwenden.
Einrichtung
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
Allowed-Signers-Datei
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
Verifizieren
git log --show-signature
git verify-commit HEAD
git verify-tag v1.0.0
Hardware-gestutzte Schlussel
OpenSSH unterstutzt FIDO/U2F-Schlussel (ssh-keygen -t ed25519-sk).
Widerruf
git config --global gpg.ssh.revocationFile ~/.config/git/revoked_keys
Haufige Fehler
Nicht ubereinstimmende E-Mail zwischen Commit-Autor und allowed-signers-Eintrag.
Gemischte Umgebungen
SSH-signierte und GPG-signierte Commits konnen in einem Repo koexistieren.