Von Gast (nicht überprüft) , 29 April 2026

Vorfallsreaktion

Sie haben einen API-Key, ein Passwort oder einen privaten Schlussel committet. Aus dem letzten Commit zu entfernen reicht nicht — Git behalt die Datei in jedem fruheren Commit, bis Sie die Historie umschreiben.

Schritt 1: sofort rotieren

Bevor Sie das Repo anfassen, widerrufen Sie die Anmeldedaten. Nehmen Sie an, dass jede gepushte Historie bereits gespiegelt, gescraped oder gecached wurde.

Schritt 2: Historie mit filter-repo umschreiben

git clone --mirror [email protected]:org/repo.git repo-mirror
cd repo-mirror
git filter-repo --path config/secrets.yml --invert-paths
cat > replace.txt <<'EOF'
regex:AKIA[0-9A-Z]{16}==>REDACTED
literal:hunter2==>REDACTED
EOF
git filter-repo --replace-text replace.txt

Schritt 3: force-push

git push --force --all
git push --force --tags

Schritt 4: lokale Objekte prunen

git reflog expire --expire=now --all
git gc --prune=now --aggressive

Geheimnisse fruh erkennen

#!/usr/bin/env bash
gitleaks protect --staged --redact || exit 1

Haufige Fehler

Glauben, dass force-push genug ist — Caches, Forks, Mirror und Team-Klone enthalten die Daten weiterhin.

Audit

git log -p --all -S "AKIA"
git grep "hunter2" $(git rev-list --all)