Zum Inhalt springen
ecdsa.com

Signieren von Git-Commits

Das Signieren von Git-Commits und -Tags mit Schlüsseln für OpenPGP, SSH (seit Git 2.34) oder X.509, damit Hosting-Plattformen und Reviewer prüfen können, wer sie erstellt hat; konfiguriert über gpg.format und user.signingkey.
Auch geschrieben alssigned commitsgit commit -Sgpg.format sshgitsignverified commits

Setze git config gpg.format ssh (oder openpgp, x509), user.signingkey und commit.gpgsign true; prüfe mit git log --show-signature oder git verify-commit. Die Prüfung mit SSH braucht gpg.ssh.allowedSignersFile mit einer Liste von Principals und Schlüsseln. Git signiert das Commit-Objekt selbst, das den Tree und die Eltern-Commits festschreibt, nicht aber spätere Rebases – diese erzeugen neue Commits, die neue Signaturen brauchen.

GitHub und GitLab zeigen Verified-Badges an, wenn die Signatur zu einem Schlüssel passt, der im Konto des Committers registriert ist (SSH-Signaturschlüssel werden getrennt von Authentifizierungsschlüsseln registriert), und Branch-Schutzregeln können signierte Commits vorschreiben. gitsign signiert Commits schlüssellos mit Sigstore. Eine Signatur beweist, welcher Schlüssel signiert hat, nicht, dass der Code gut ist, und die Plattformen signieren Merges aus der Web-UI mit ihren eigenen Schlüsseln neu.

Standards und Quellen

Alle Begriffe