Git Commits mit OpenPGP Key signieren (GitHub)

Coding

In diesem Tutorial beschreibe ich euch, wie Ihr Git Commits mit einem OpenPGP Key signieren könnt. Damit könnt Ihr einfach bestätigen, dass Ihr wirklich der Urheber seit. Das Commit wird dann auch entsprechend auf z.B. GitHub als signiert angezeigt.

Ich gehe jetzt mal davon aus, dass Ihr bereits ein OpenPGP Key erzeugt habt. Ansonst könnt Ihr im Netz nach einer Anleitung suchen, oder euch das Notwendige aus meinem Tutorial zum Nitrokey Pro 2 herausholen.

OpenPGP Public Schlüssel ermitteln

In der Konsole können wir mit folgendem Befehl die vorhanden Key anzeigen lassen:

gpg --keyid-format long --list-keys

Das sollte euch alle vorhanden Schlüsseln anzeigen:

pub   rsa2048/AA10842DB9E8432A 2019-05-29 [SC]
      BF63605C4D5AF4F03D2E05CDAA10842DB9E8432A
uid              [ ultimativ ] Hans Wurst <hans.wurst@example.org>
sub   rsa2048/FAE183B64746EEEE 2019-05-29 [E]

Kopiert euch die KeyID, in meinem Fall wäre das “AA10842DB9E8432A”. Nun geben wir mit folgendem Befehl den Public Key aus, wobei Ihr eure KeyID eintragen müsst:

gpg --armor --export AA10842DB9E8432A

Nun kopiert man sich die Ausgabe komplett und geht auf GitHub in die Benutzereinstellungen unter “SSH- / GPG Schlüssel”. Dort fügt man einen neuen GPG Schlüssel hinzu und kopiert den eben ausgegebene Publiy Key in das entsprechende Feld. Auf Gitea Seite sind wir damit nun fertig.

Git konfigurieren

Damit Git die Commits signiert müssen wir ein paar Einstellungen auf dem Benutzersystem machen. Mit folgendem Befehl könnt Ihr Git mitteilen, welcher Key benutzt werden soll:

git config --global user.signingkey AA10842DB9E8432A

Hier ist auch wieder eure KeyID zu einzusetzen. Wenn man automatisch alle Commits signieren will muss man noch folgenden Befehl ausführen:

git config --global commit.gpgsign true

Und zuletzt noch:

echo 'export GPG_TTY=$(tty)' >> ~/.profile
source ~/.profile

Nun kann man Commits anfangen zu signieren (wenn nicht automatisch):

git commit -S -m TEXT
git push

Wenn alles funktioniert hat sollte Ihr auf GitHub das Commit als signiert sehen.

Github signed commit

Kommentare

Du kannst dein Mastodon Konto benutzen, um auf diesen Beitrag zu antworten.

Antworten