Tutoriel pour l'utilisation de git crypté
Installation initiale
- Installer git-crypt
Par exemple sur debian, ubuntu
sudo apt install git-crypt
- Initialiser un répertoire
Dans le répertoire (dans la suite on utilisera le répertoire enonce
) qui n’est pas encore suivi par git
git init
git crypt init
Créer le fichier .gitattributes contenant
* filter=git-crypt diff=git-crypt
/README.md !filter !diff
/.gitattributes !filter !diff
Ce fichier mets en place les filtres de cryptage, en excluant deux fichiers qui seront en clair : README.md et le fichier .gitattributes lui même
Ajouter ce fichier à git
git add .gitattributes
commit -m "Adds filter"
- Ajouter un fichier (donc crypté)
Pour ajouter le fichier document.tex
git add document.tex
git commit -m "modification"
Attention ! Les textes des comits sont en clair, de même que les noms de fichiers
Il faut ensuite ajouter à un dépot distant avec un git remote add
puis un git push
comme d’habitude
- Vérifier l’état crypté À tout moment vous pouvez vérifier l’état d’un ou de tous les fichiers pour savoir si ils sont cryptés ou pas (par exemple avant de faire un git push)
git crypt status
- Inviter quelqu’un à participer à ce git
Récupérer la clé
git-crypt export-key /tmp/key.crypt
Envoyer la clé par mail crypté. Attention, cette clé permet ensuite d’accéder aux éléments du git en clair. Toute perte de cette clé, tout envoi par erreur peut être considéré comme une diffusion du sujet ! N’oubliez pas d’effacter le fichier /tmp/key.crypt
dès le mail envoyé.
Ensuite, le recepteur qui a vocation à participer doit d’abord récupérer le dépot crypté de manière classique:
git clone https://......../enonce.git
cd enonce
Puit doit ajouter la clé en utilisant la commande suivante :
git crypt unlock /path/to/key.crypt
Lorsque la clé est ainsi associée avec votre dépot, n’oubliez pas d’effacer le fichier /path/to/key.crypt
qui n’est plus nécessaire.