Boehrsi.de - Blog

Git Commits signieren - Extra Sicherheit für die Versionsverwaltung

Erstellt am event Uhr von account_circle Boehrsi in label Development
Git Commits signieren - Extra Sicherheit für die Versionsverwaltung Bild

Ich habe vor einiger Zeit angefangen jeden Git Commit zu signieren. Die Anregung dafür kam von einem Kollegen und dafür ein Dankeschön an Frank open_in_new. Für alle die nicht wissen worum es geht, ein Git Commit kann signiert werden, so wie auch Emails und andere Inhalte signiert werden können. Damit wird nachgewiesen dass ein Commit auch wirklich von der angegebenen Person stammt. Dieser Bonus an Vertrauen ist vor allem in Repositories mit vielen aktiven Nutzern hilfreich, aber auch in kleinen Repositories oder privaten Projekten gibt er ein zusätzlich Stück extra Sicherheit.
Um seine Commits zu signieren sind folgende Schritte nötig, außerdem muss man vielleicht noch das eine oder andere kleine plattformspezifische Problem aus der Welt schaffen.

  1. Installiert die benötigte Software
  1. Erstellt einen neuen Key (RSA 4096 wäre ein Vorschlag für die Sicherheitseinstellungen)
gpg --full-generate-key
  1. Lasst euch alle vorhandenen Keys anzeigen
gpg --list-keys
  1. In der Ausgabe seht ihr hinter dem Eintrag pub das Datum, die Art des Keys (z.B. rsa4096) und einen Hash. Der Hash muss nun im Befehl git config --global user.signingkey KEY_HASH eingesetzt werden. Auf diesem Weg setzt ihr den Key global für alle Repositories.
git config --global user.signingkey ABCDEF0123456
  1. Einen Commit könnt ihr via git commit –S signieren, ein Tag via git tag –s
  2. Solltet ihr so wie ich alle Aktionen (in allen Repositories) signieren wollen, was entsprechend für häufige Passwort abfragen sorgt, nutzt den folgenden Befehl. Ein spezifisches Repository hingegen kann via git config commit.gpgsign true konfiguriert werden.
git config --global commit.gpgsign true
  1. Damit Dienste wie Github den Key erfolgreich verifizieren können, müsst ihr den jeweiligen Public-Teil des Keys den Diensten mitteilen. Bei Github geht dies z.B. über diesen Link open_in_new.

Windows Probleme beheben:

  • Solltet ihr die Fehlermeldung “secret key not available” erhalten, prüft via git config --global gpg.program ob der richtige Pfad zu eurem GPG Tool gesetzt ist (via walialu.com open_in_new). Mittels des folgenden Befehles konnte ich den Fehler bei mir beheben.
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
  • Beim Verwalten eurer Keys und der dazugehörigen Config Einstellungen kann eine GUI hilfreich sein. Ich nutze GPA (GNU Privacy Assistant), welche in Gpg4win enthalten ist.
Related Links
Kommentare  
Kommentar erstellen
Mit dem Abschicken des Kommentars erklären sie sich mit der in der Datenschutzerklärung dargelegten Datenerhebung für Kommentare einverstanden. Spam, unangebrachte Werbung und andere unerwünschte Inhalte werden entfernt. Das Abonnieren via E-Mail ist nur für E-Mail Adressen erlaubt die Sie rechtmäßig administrieren. Widerrechtliche Abonnements werden entfernt.