Back

So signierst du deine Git-Commits mit GPG-Schlüsseln

So signierst du deine Git-Commits mit GPG-Schlüsseln

Wenn du dir Open-Source-Repositories oder professionelle Projekte ansiehst, wirst du vielleicht bemerken, dass einige Commits ein “Verifiziert”-Abzeichen haben. Diese signierten Commits beweisen die Identität des Autors und fügen dem Codebase eine zusätzliche Vertrauensebene hinzu.

Das Signieren deiner Git-Commits mit GPG-Schlüsseln ist einfach einzurichten und liefert einen klaren Beweis dafür, dass die Commits tatsächlich von dir stammen.

In diesem Artikel lernst du, wie du einen GPG-Schlüssel erstellst, Git für dessen Verwendung konfigurierst und beginnst, deine Commits automatisch zu signieren.

Wichtige Erkenntnisse

  • Das Signieren von Git-Commits verifiziert deine Identität und verbessert das Projektvertrauen
  • Die Einrichtung der GPG-Commit-Signierung umfasst die Generierung eines Schlüssels und die Konfiguration von Git
  • Signierte Commits sind besonders wichtig für Open-Source- und Unternehmensarbeit

Warum Git-Commits signieren?

  • Nachweis der Autorenschaft: Andere können überprüfen, dass ein Commit von dir stammt und nicht von jemandem, der sich als du ausgibt.
  • Vertrauen und Sicherheit: Entscheidend in Open-Source-, Unternehmens- und sensiblen Repositories.
  • Professionelle Standards: Zunehmend erwartet in vielen Engineering-Workflows.

Signierte Commits werden auf Plattformen wie GitHub mit einem “Verifiziert”-Label angezeigt.

Wie man einen GPG-Schlüssel generiert

Prüfe zunächst, ob du bereits einen GPG-Schlüssel hast:

gpg --list-secret-keys --keyid-format=long

Wenn du einen erstellen musst:

gpg --full-generate-key

Bei Aufforderung:

  • Wähle die Standardeinstellung (RSA und RSA)
  • Setze die Schlüsselgröße auf 4096 Bits
  • Setze das Ablaufdatum (optional, 1 Jahr ist üblich)
  • Gib deinen Namen und deine E-Mail-Adresse ein (muss mit deinem GitHub-Konto übereinstimmen, wenn du GitHub verwendest)

Nach der Erstellung liste deine Schlüssel auf:

gpg --list-secret-keys --keyid-format=long

Finde die GPG-Schlüssel-ID (eine lange Zeichenfolge), die mit deiner E-Mail verknüpft ist.

Wie man Git für die Verwendung deines GPG-Schlüssels konfiguriert

  1. Sage Git, dass es Commits automatisch signieren soll:
git config --global commit.gpgsign true
  1. Setze deinen GPG-Schlüssel für Git:
git config --global user.signingkey YOUR_KEY_ID

Ersetze YOUR_KEY_ID mit der ID, die du zuvor gefunden hast.

  1. Stelle sicher, dass Git GPG verwendet:
git config --global gpg.program gpg

Jetzt werden alle neuen Commits, die du erstellst, automatisch signiert.

Verwandtes Thema: Einrichten einer Git-Commit-Vorlage: Eine Schritt-für-Schritt-Anleitung

Wie man deinen GPG-Schlüssel auf GitHub hochlädt

Wenn du das “Verifiziert”-Abzeichen auf GitHub haben möchtest:

  1. Exportiere deinen öffentlichen Schlüssel:
gpg --armor --export YOUR_EMAIL
  1. Kopiere die gesamte Ausgabe.
  2. Gehe zu GitHub > Einstellungen > SSH und GPG-Schlüssel > Neuer GPG-Schlüssel.
  3. Füge deinen öffentlichen Schlüssel ein und speichere.

Jetzt kann GitHub deine signierten Commits verifizieren.

Fehlerbehebung bei Signierungsproblemen

  • GPG-Agent-Aufforderungen: Einige Systeme erfordern zusätzliche Konfiguration, um deine Passphrase zu speichern.
  • Falsche E-Mail-Adresse: Die E-Mail deines GPG-Schlüssels muss mit deiner GitHub-E-Mail übereinstimmen (oder zu deinem GitHub-Konto hinzugefügt werden).
  • Fehlendes GPG: Stelle sicher, dass GPG installiert ist (gpg --version). Installiere es bei Bedarf über Homebrew, apt oder den Paketmanager deines Systems.

Fazit

Das Signieren von Git-Commits mit GPG-Schlüsseln stärkt die Sicherheit und Integrität deines Projekts. Es ist ein kleiner zusätzlicher Schritt, der Professionalität signalisiert und Vertrauen bei Mitarbeitern, Nutzern und der breiteren Entwicklergemeinschaft aufbaut.

Häufig gestellte Fragen

Ja. Wenn du die globale Signierung nicht aktivierst, kannst du einen Commit manuell mit `git commit -S` signieren.

Ja. Du kannst GitHub Actions-Workflows konfigurieren, um einen GPG-Schlüssel für signierte Commits oder Tags zu verwenden.

Nein, sie ist optional. Aber sie wird zunehmend für Open-Source- und Unternehmensprojekte empfohlen.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers