Tutoriel pour l'utilisation de git crypté

Installation initiale

  1. Installer git-crypt

Par exemple sur debian, ubuntu

sudo apt install git-crypt
  1. 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"
  1. 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

  1. 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
  1. 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.