Passwörter aus Git löschen
Hin und wieder programmiert man vor sich hin, wer Code läuft und man checkt ihn ein. Ein paar Tage und ein paar Commits später stellt man fest, das man ein WLAN-Passwort, ein Token, einen API-Key oder eine Datei mit Secrets eingecheckt hat.
Was jetzt? Einfach aus der aktuellen Version entfernen? Was passiert, wenn jemand den alten Code anschaut oder ein Tool die alten Versionen scannt. Dann ist das Passwort plötzlich öffentlich.
Leider bietet Git von Haus aus keine Möglichkeit an eine einzelne Datei aus einem Repository zu löschen. Das gesamte Repo zu löschen ist aber auch keine Alternative.
Nach langem Suchen habe ich zwei Möglichkeiten gefunden Passwortdateien oder besser gesagt beliebige Dateien aus einem Repository zu entfernen, ohne die anderen Dateien in Mitleidenschaft zu ziehen.
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA" --prune-empty --tag-name-filter cat -- --all git push --force --verbose --dry-run git push --force
oder
git filter-branch --index-filter 'git update-index --remove PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' <introduction-revision-sha1>..HEAD git push --force --verbose --dry-run git push --force
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!