Git Signierte Commits (Optional)
Signierte Git-Commits sind Commits mit digitaler Signatur, die zeigen, von wem sie wirklich stammen.
Konfiguration auf dem Host System
Abschnitt betitelt „Konfiguration auf dem Host System“Um signierte Git-Commits nutzen zu können, kann in der jeweiligen Git-Konfiguration (z.B. ~/.gitconfig.d/kunde-1) folgende Einstellungen vorgenommen werden:
[user] name = Dein Name email = dev-kunde-1@example.com signingkey = ~/.ssh/github_ed25519.pub
[gpg] format = ssh
[commit] gpgsign = trueGit unterstützt SSH-Signaturen über
gpg.format=sshso dassuser.signingkeydabei auf den SSH-Public-Key zeigt. An der SSH Konfiguration muss für signierte Commits nicht geändert werden.
Konfiguration bei GitHub
Abschnitt betitelt „Konfiguration bei GitHub“In GitHub wird dafür am GitHub Account folgendes benötigt:
- Neuen SSH Key anlegen
- Als Key type “Signing Key” auswählen
- Public Key einfügen
Selektive Nutzung mit mehreren Git-Configs
Abschnitt betitelt „Selektive Nutzung mit mehreren Git-Configs“Bei Verwendung mehrerer Git-Konfigurationen (z.B. über includeIf für verschiedene Projektordner) kann Signing gezielt nur für bestimmte Kontexte aktiviert werden:
Beispiel: Nur Projekte von kunde-1 signieren.
~/.gitconfig
[includeIf "gitdir:~/Work/kunde-1/"] path = ~/.gitconfig.d/kunde-1[includeIf "gitdir:~/Work/kunde-2/"] path = ~/.gitconfig.d/kunde-2~/.gitconfig.d/kunde-1 (mit Signing)
[user] name = Dein Name email = dev-kunde-1@example.com signingkey = ~/.ssh/github_ed25519.pub
[gpg] format = ssh
[commit] gpgsign = true~/.gitconfig.d/kunde-2 (ohne Signing)
[user] name = Dein Name email = dev-kunde-2@example.comSo werden nur Commits in
~/Work/kunde-1/automatisch signiert, während Commits in Kundenprojekten unsigniert bleiben.
Verifizierung
Abschnitt betitelt „Verifizierung“Nach einem signierten Commit zeigt GitHub ein grünes “Verified”-Badge neben dem Commit an.
Die Signatur kann mit folgendem Befehl geprüft werden:
git log --show-signature -1