Direkt zum Hauptinhalt

GitHub Commit-Signierung per SSH einrichten

🔐 Git Commit-Signierung mit SSHDisclaimer

Diese Anleitung zeigt dir, wie du Git-Commits mit einem SSH-Schlüssel signieren kannst. Das sorgt dafür, dass Plattformen wie GitHub deine Commits als „Verified“ anzeigen, sofern dein öffentlicher Schlüssel dort hinterlegt ist.

Die Einrichtung erfolgt zunächst lokal für ein einzelnes Repository – so kannst du dich langsam mit signierten Commits vertraut machen. Eine globale Konfiguration ist optional am Ende beschrieben.


✅ Voraussetzungen

  • Git ist installiert (git --version)
  • Du hast ein GitHub-Konto (oder eine vergleichbare Git-Plattform)
  • SSH ist auf deinem System verfügbar (ssh -V)

🧩 Schritt 1: SSH-Schlüssel erzeugen (falls noch nicht vorhanden)

Wenn du bereits einen SSH-Schlüssel unter ~/.ssh/id_ed25519 verwendest, kannst du diesen Schritt überspringen.

  1. Öffne ein Terminal oder eine Konsole.
  2. Führe folgenden Befehl aus:
    ssh-keygen -t ed25519 -C "deine@email.de"
  3. Drücke Enter, um den Standardspeicherort zu wählen: ~/.ssh/id_ed25519
  4. Optional: Vergib eine Passphrase für zusätzlichen Schutz.

🔗 Schritt 2: Öffentlichen SSH-Schlüssel auf GitHub hochladen

  1. Gehe zu https://github.com/settings/ssh
  2. Klicke auf "New SSH key"
  3. Vergib einen sinnvollen Titel (z. B. „Signier-Schlüssel“)
  4. Kopiere deinen öffentlichen Schlüssel mit:
    cat ~/.ssh/id_ed25519.pub
  5. Füge den gesamten Inhalt (beginnt mit ssh-ed25519) bei GitHub ein.
  6. Klicke auf "Add SSH key"

⚙️ Schritt 3: SSH-Signierung für ein Repository aktivieren

Wechsle in dein Repository-Verzeichnis und führe folgende Befehle aus:

git config commit.gpgsign true
git config gpg.format ssh
git config user.signingkey ~/.ssh/id_ed25519.pub

Das aktiviert die Signaturpflicht für Commits nur in diesem Repository.


🧪 Schritt 4: Testen

  1. Erstelle eine Testdatei:
    echo "Signatur-Test" > test.txt
  2. Commit erstellen:
    git add .
    git commit -m "Signierter Commit per SSH"
  3. Push auf GitHub:
    git push origin main

Rufe danach den Commit auf GitHub auf – er sollte mit einem „Verified“-Badge markiert sein.


❓ Fehlerbehebung

Problem

Mögliche Ursache

Commit ist nicht signiert

commit.gpgsign

ist nicht aktiviert oder falscher Schlüsselpfad

„Unverified“ auf GitHub

Öffentlicher Schlüssel fehlt in GitHub oder nicht korrekt hinterlegt

Fehlermeldung beim Commit

SSH-Agent läuft nicht oder Pfad stimmt nicht

Hilfreiche Prüf-Befehle:

git config --get commit.gpgsign
git config --get gpg.format
git config --get user.signingkey

🌍 Optional: SSH-Signatur global aktivieren

Wenn du deine Commits dauerhaft signieren möchtest, kannst du die Einstellungen global aktivieren:

git config --global commit.gpgsign true
git config --global gpg.format ssh
git config --global user.signingkey ~/.ssh/id_ed25519.pub

Das wirkt sich auf alle zukünftigen Repositories aus.


📌 Hinweis

Wenn ein Projekt Branch-Regeln wie „Require signed commits“ verwendet, musst du signieren, um Commits pushen zu können. Diese Anleitung hilft dir, diese Voraussetzung sicher zu erfüllen.