In diesem Tutorial beschreibe ich euch, wie Ihr mit Gitea 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 in Gitea 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.
Ebenso setze ich voraus, dass Ihr eine Gitea Instanz laufen habt. Eine Anleitung hierfür gibt es hier.
Dieses Anleitung findest du auch in einer aktualisierten Fassung auf meinem neuen Blog.
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 in Gitea 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 mittelen, 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
Nun kann man Commits anfangen zu signieren (wenn nicht automatisch):
git commit -S -m TEXT git push
Wenn alles funktioniert hat sollte Ihr in der Gitea Weboberfläche das Commit als signiert sehen.

Abschluss
Hiermit ist dieses Tutorial abgeschlossen. Ich hoffe es war hilfreich für euch! Wenn Ihr mich unterstützen wollt, könnt ihr das sehr gerne hier tun.
Danke 🙂