Crypter le référentiel git sur le serveur (sûr contre le vol de matériel physique)

11

J'ai un serveur de production (Ubuntu, fonctionnant 24/7) avec un référentiel git et certains ordinateurs clients avec chacun une copie de travail de ce référentiel. Sur les ordinateurs clients, le simple fait d'utiliser le chiffrement du dossier personnel semble résoudre le problème selon lequel en cas de vol de matériel, personne ne peut accéder aux fichiers dans git.

Comment puis-je chiffrer le côté distant du référentiel git pour m'assurer qu'en cas de matériel volé, personne ne peut reconfigurer et cloner le référentiel git?

Au début, j'ai pensé à chiffrer le répertoire personnel de l'utilisateur git, mais j'ai réalisé que cela n'aurait aucun sens, car quand et par qui devrait-il être déchiffré?

Puis-je placer le référentiel git dans mon propre répertoire / lien personnel pour qu'il ne soit disponible que lorsque je me suis connecté au serveur via SSH? Ou existe-t-il une solution similaire à ce problème?

Merci pour tous les conseils à l'avance!

leèmes
la source

Réponses:

4

Vous pouvez utiliser un répertoire personnel crypté. Vous devez vous connecter et monter manuellement le lecteur chiffré et fournir la clé de déchiffrement lors du redémarrage du serveur. Le lecteur ne peut pas être monté automatiquement pour des raisons évidentes.

Ragoût
la source
Merci. Vous voulez donc dire crypter le répertoire personnel de l'utilisateur git? Puisque je ne suis pas l'utilisateur git lorsque je me connecte avec SSH, comment puis-je monter les ecryptfs? Ou dois-je me connecter avec l'utilisateur git?
leemes
(désolé, je ne connais ecryptfs que dans une configuration automatique depuis que j'utilise Ubuntu sur tous mes ordinateurs avec des répertoires personnels chiffrés utilisant ecryptfs, et donc je n'ai jamais à me soucier des commandes manuelles;))
leemes
1
vous pouvez crypter un seul dossier. vous créeriez un fichier sur le disque qui représente le système de fichiers crypté, puis si vous configurez correctement / etc / fstab, cela pourrait être quelque chose comme exécuter "mount / home / git / repository" qui vous demanderait un mot de passe. voici un résumé décent de la façon dont vous pourriez accomplir cela: h3g3m0n.wordpress.com/2007/04/16/…
ragoût
1

Vous pouvez utiliser un filtre de nettoyage / nettoyage pour crypter le contenu du référentiel sur le système de fichiers distant: https://gist.github.com/873637

Peter Mounce
la source
Cela crypte également le référentiel local
Tobias Kienzler
Essayez plutôt github.com/AGWA/git-crypt - utilise le mode CTR et comprend mieux la crypto; il laisse le dépôt local non chiffré dans l'arborescence de travail, via les filtres smudge / clean.
Phil P
0

Vous pouvez utiliser git-remote-gcrypt vers git pushet git fetchdepuis les ordinateurs clients vers le serveur (ou n'importe où ailleurs). Non seulement le contenu, mais les noms des fichiers et autres (toutes?) Métadonnées du référentiel sont également chiffrés.

Kenny Evitt
la source