GPG-Verifizierung aktivieren: Der ultimative Guide [2025 Easy Guide]

Melden

Hier ist ein aktueller und leicht verständlicher Guide für das Jahr 2025, wie du GPG-Verifizierung für deine Git-Commits einrichtest.


Hast du dich jemals gefragt, warum manche Commits auf GitHub oder GitLab ein grünes "Verified"-Label haben? Das liegt an der GPG-Signierung. Ohne diese kann theoretisch jeder behaupten, er sei du, indem er einfach deinen Namen und deine E-Mail in der Git-Konfiguration fälscht.

Mit GPG (GNU Privacy Guard) stellst du sicher, dass deine Identität kryptografisch bestätigt ist.


Schritt 1: Prüfen, ob GPG bereits installiert ist

Öffne dein Terminal (PowerShell, Bash oder Zsh) und gib Folgendes ein:

gpg --version
  • Falls eine Versionsnummer erscheint: Super, du kannst fortfahren.
  • Falls der Befehl nicht gefunden wurde:
    • macOS: brew install gpg2
    • Windows: Installiere Gpg4win.
    • Linux (Ubuntu/Debian): sudo apt install gnupg

Schritt 2: Ein neues GPG-Schlüsselpaar erstellen

Wir erstellen nun einen modernen, sicheren Schlüssel.

  1. Gib diesen Befehl ein:
    gpg --full-generate-key
  2. Auswahl: Wähle (1) RSA and RSA (oder (9) ECC, falls du modernere Ed25519-Schlüssel bevorzugst).
  3. Schlüsselgröße: Wähle 4096 Bit.
  4. Gültigkeit: Drücke Enter für "läuft nicht ab" (oder wähle z.B. 1y für ein Jahr).
  5. Identität: Gib deinen Namen und deine E-Mail-Adresse an.
    • Wichtig: Die E-Mail muss mit der E-Mail-Adresse deines GitHub/GitLab-Accounts übereinstimmen!
  6. Passphrase: Wähle ein sicheres Passwort. Du wirst es beim Signieren von Commits brauchen.

Schritt 3: Deinen Public Key exportieren

Damit GitHub/GitLab deine Identität prüfen kann, musst du ihnen deinen öffentlichen Schlüssel geben.

  1. Liste deine Schlüssel auf, um die ID zu finden:

    gpg --list-secret-keys --keyid-format LONG
  2. Suche nach der Zeile, die mit sec beginnt. Die ID ist die Zeichenfolge nach dem Schrägstrich. Beispiel: sec rsa4096/ABC123DE456FG789 2025-01-01 [SC] -> Die ID ist ABC123DE456FG789.

  3. Exportiere den Schlüssel (ersetze DEINE_ID durch deine echte ID):

    gpg --armor --export DEINE_ID
  4. Kopiere den gesamten Block (von -----BEGIN PGP PUBLIC KEY BLOCK----- bis zum Ende).


Schritt 4: Den Schlüssel bei GitHub hinzufügen

  1. Gehe zu deinen GitHub Settings.
  2. Klicke links auf SSH and GPG keys.
  3. Klicke auf New GPG key.
  4. Füge deinen kopierten Key ein und speichere.

Schritt 5: Git mitteilen, welchen Schlüssel es nutzen soll

Jetzt musst du deinem lokalen Git sagen, dass es diesen Schlüssel für deine Arbeit verwenden soll.

# Ersetze DEINE_ID wieder mit deiner ID
git config --global user.signingkey DEINE_ID

# Aktiviere die automatische Signierung für ALLE Commits
git config --global commit.gpgsign true

Tipp für Windows-Nutzer: Falls Git den GPG-Pfad nicht findet, musst du ihn manuell setzen: git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"


Schritt 6: Einen Commit signieren und testen

Erstelle eine Teständerung und committe sie:

git add .
git commit -m "Mein erster verifizierter Commit"

Du wirst nun nach deiner GPG-Passphrase gefragt, die du in Schritt 2 festgelegt hast.

Überprüfung: Push den Commit zu GitHub und schau dir die Commit-Historie an. Du solltest nun das glänzende grüne "Verified"-Badge neben deinem Namen sehen! ✅


Bonus: Passwort-Abfrage automatisieren (GPG Agent)

Wenn du nicht bei jedem Commit dein Passwort eingeben willst, stelle sicher, dass der GPG-Agent läuft.

  • Mac/Linux: Erstelle oder editiere die Datei ~/.gnupg/gpg-agent.conf und füge hinzu:
    default-cache-ttl 34560000
    max-cache-ttl 34560000

    Das speichert dein Passwort für die gesamte Session.

Häufige Fehler 2025:

  • Email-Mismatch: Wenn die E-Mail im GPG-Key nicht exakt die ist, die in Git (git config user.email) hinterlegt ist, wird das Badge nicht als "Verified" angezeigt.
  • TTY Error: Falls du eine Fehlermeldung wie gpg: signing failed: Inappropriate ioctl for device erhältst, füge export GPG_TTY=$(tty) zu deiner .bashrc oder .zshrc hinzu.

Glückwunsch! Dein Code ist jetzt sicherer und professioneller signiert.

0