snippets · bash

Habe ich ein Secret irgendwann versehentlich in Git committed?

Die .env steht heute in .gitignore. Trotzdem bleibt die Frage: War sie früher schon einmal committed?

Erst nach dem Dateinamen suchen

git log --all --name-only --pretty=format: \
  | sort -u \
  | rg '(^|/)(\.env|id_rsa|credentials|secrets?)(\.|$|/)'

Wenn du einen konkreten historischen Pfad kennst:

git log --all --oneline -- <PATH>

Und einen bestimmten String kannst du mit der Pickaxe-Suche verfolgen:

git log --all -S'<UNVERWECHSELBARER_TEIL>' --oneline

Wichtig: Finden ist nicht Bereinigen

Wenn ein echtes Secret committed und möglicherweise gepusht wurde, lautet der erste Sicherheits-Schritt Secret widerrufen/rotieren, nicht nur die Datei aus Git entfernen. History-Rewrite kann Kopien in anderen Klonen, Caches oder bereits abgegriffene Credentials nicht ungültig machen.

Keine echten Secrets in Shell-History kopieren

Suche möglichst nach einem nicht sensitiven Präfix, Variablennamen oder Dateinamen. Ein vollständiges Token als Kommandozeilenargument erzeugt sonst unter Umständen das nächste Geheimnisproblem gleich in deiner Shell-History.

Die Kernfrage ist deshalb zweigeteilt: War es in Git? und, falls ja, ist das Credential noch gültig?