Git-Repository auf dem Server verschlüsseln (sicher gegen Diebstahl physischer Hardware)

11

Ich habe einen Produktionsserver (Ubuntu, der rund um die Uhr läuft) mit einem Git-Repository und einigen Client-Computern mit jeweils einer Arbeitskopie dieses Repositorys. Auf den Client-Computern scheint die einfache Verwendung der Verschlüsselung des Basisordners das Problem zu lösen, dass bei gestohlener Hardware niemand auf die Dateien im Git zugreifen kann.

Wie kann ich die Remote-Seite des Git-Repositorys verschlüsseln, um sicherzustellen, dass bei gestohlener Hardware niemand das Git-Repository neu konfigurieren und klonen kann?

Zuerst dachte ich daran, das Home-Verzeichnis des Git-Benutzers zu verschlüsseln, aber dann wurde mir klar, dass dies keinen Sinn ergibt, denn wann und von wem sollte es entschlüsselt werden?

Kann ich das Git-Repository in meinem eigenen Home-Verzeichnis / Link dazu ablegen, sodass es nur verfügbar ist, wenn ich mich über SSH beim Server angemeldet habe? Oder gibt es eine ähnliche Lösung für dieses Problem?

Vielen Dank für alle Tipps im Voraus!

Leemes
quelle

Antworten:

4

Sie können ein verschlüsseltes Home-Verzeichnis verwenden. Sie müssten sich anmelden und das verschlüsselte Laufwerk manuell bereitstellen und den Entschlüsselungsschlüssel angeben, wenn der Server neu gestartet wird. Sie können das Laufwerk aus offensichtlichen Gründen nicht automatisch mounten lassen.

Eintopf
quelle
Vielen Dank. Sie meinen also, das Home-Verzeichnis des Benutzers zu verschlüsseln git? Wie mounte ich dann die ecryptfs, da ich bei der Anmeldung mit SSH nicht der Benutzer git bin? Oder sollte ich mich mit User Git anmelden?
Leemes
(Entschuldigung, ich kenne ecryptfs nur in einer automatischen Konfiguration, da ich Ubuntu auf allen meinen Computern mit verschlüsselten Home-Verzeichnissen verwende, die ecryptfs verwenden, und mich daher nie um manuelle Befehle kümmern muss;))
leemes
1
Sie können nur einen einzelnen Ordner verschlüsseln. Sie würden eine Datei auf der Festplatte erstellen, die das verschlüsselte Dateisystem darstellt. Wenn Sie / etc / fstab korrekt einrichten, könnte dies nur so etwas wie "mount / home / git / repository" ausführen, das Sie zur Eingabe eines Kennworts auffordert. Hier ist eine anständige Beschreibung, wie Sie dies erreichen könnten: h3g3m0n.wordpress.com/2007/04/16/…
Eintopf
1

Sie können einen Smudge / Clean-Filter verwenden, um den Inhalt des Repositorys im Remote-Dateisystem zu verschlüsseln: https://gist.github.com/873637

Peter Mounce
quelle
Das verschlüsselt tatsächlich auch das lokale Repository
Tobias Kienzler
Versuchen Sie stattdessen github.com/AGWA/git-crypt - verwendet den CTR-Modus und versteht Krypto besser; Das lokale Repo bleibt über die Smudge / Clean-Filter unverschlüsselt im Arbeitsbaum.
Phil P
0

Sie können git-remote-gcrypt von git pushund zu git fetchden Client-Computern zum Server (oder irgendwo anders) verwenden. Nicht nur der Inhalt, sondern auch die Namen der Dateien und anderer (aller?) Repository-Metadaten werden verschlüsselt.

Kenny Evitt
quelle