## Synchroniser Obsidian en toute sécurité avec Git et chiffrement de bout en bout
Synchroniser vos notes Obsidian entre plusieurs appareils tout en préservant la confidentialité de vos données est simple avec Git et l'outil git-crypt pour un chiffrement transparent. Cette méthode vous donne un contrôle total sur vos notes, sans dépendre de services cloud propriétaires.
Configuration de l'environnement et création d'une clé GPG
Commencez par installer les logiciels nécessaires. Sur Arch Linux, exécutez sudo pacman -S gnupg git-crypt ; sur Debian/Ubuntu, utilisez sudo apt install gnupg git-crypt. Ensuite, sécurisez les permissions du répertoire GPG :
chmod 700 ~/.gnupg
find ~/.gnupg -type f -exec chmod 600 {} \;
find ~/.gnupg -type d -exec chmod 700 {} \;
Générez une clé asymétrique avec gpg --full-generate-key. Pendant la configuration, choisissez :
- Type de clé : RSA (option 1).
- Taille : 4096 bits.
- Expiration : 0 (sans expiration).
- Détails ID : votre nom et e-mail.
- Phrase de passe : obligatoire pour déverrouiller chaque dépôt.
Pour plus de commodité, mettez en cache la phrase de passe pendant 24 heures en ajoutant default-cache-ttl 86400 et max-cache-ttl 86400 dans ~/.gnupg/gpg-agent.conf, puis exécutez gpgconf --reload gpg-agent.
Initialisation du dépôt avec git-crypt
Allez dans votre dossier de notes et initialisez un dépôt Git : cd ~/notes && git init. Configurez le chiffrement avec git-crypt init, puis ajoutez votre clé GPG comme fiable : git-crypt add-gpg-user --trusted [email protected].
Configurez correctement .gitignore et .gitattributes. Dans .gitignore, excluez les fichiers temporaires et système d'Obsidian :
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.obsidian/cache
.trash/
Dans .gitattributes, spécifiez les fichiers à chiffrer avec git-crypt :
.gitattributes !filter !diff
.gitignore !filter !diff
*.md filter=git-crypt diff=git-crypt
*.canvas filter=git-crypt diff=git-crypt
*.png filter=git-crypt diff=git-crypt
*.jpg filter=git-crypt diff=git-crypt
*.jpeg filter=git-crypt diff=git-crypt
*.pdf filter=git-crypt diff=git-crypt
L'ordre des commits est crucial : d'abord .gitattributes, puis tout le reste pour éviter de pousser des données non chiffrées.
git add .gitattributes
git commit -m "$(date '+%Y-%m-%d %H:%M')"
git add .
git commit -m "$(date '+%Y-%m-%d %H:%M')"
Vérifiez l'état du chiffrement avec git-crypt status | grep WARNING. Configurez votre dépôt distant et poussez.
Intégration avec Obsidian et automatisation
Installez le plugin Obsidian Git (par Vinzent) via les paramètres d'Obsidian pour des opérations Git comme pull, commit et push depuis l'interface ou selon un planning. Règle essentielle : déverrouillez toujours le dépôt avec git-crypt unlock dans le terminal avant de lancer Obsidian. Sinon, vous verrez du charabia binaire au lieu du texte des notes, et le plugin risque d'envoyer des commits corrompus.
Renforcez la sécurité avec un hook pre-commit pour bloquer les fichiers non chiffrés. Créez un fichier exécutable .githooks/pre-commit :
#!/bin/bash
for file in $(git diff --cached --name-only); do
if git check-attr filter "$file" | grep -q "git-crypt"; then
string=$(git show ":$file" 2>/dev/null | head -c 9)
if [ "$string" != $'\x00GITCRYPT' ]; then
echo "Le fichier '$file' n'est pas chiffré ! Soyez prudent."
exit 1
fi
fi
done
exit 0
Indiquez à Git de l'utiliser : git config core.hooksPath .githooks.
Migration et sauvegardes
Pour passer sur un nouvel appareil, exportez votre clé GPG secrète : gpg --export-secret-keys --armor [email protected] > ~/key.asc. Transférez-la en toute sécurité (par exemple via scp), importez avec gpg --import, clonez le dépôt et exécutez git-crypt unlock. Supprimez le fichier de clé des deux appareils ensuite. Sauvegardez votre clé GPG dans un endroit sécurisé comme un gestionnaire de mots de passe — sans elle et la phrase de passe, vos notes sont inaccessibles.
Alternative : chiffrement symétrique
Si GPG vous semble trop lourd, utilisez les clés symétriques de git-crypt. Exportez avec git-crypt export-key ~/key.bin, puis convertissez en base64 pour le stockage : base64 ~/key.bin. Stockez la chaîne dans votre gestionnaire de mots de passe. Sur un autre appareil, décodez et déverrouillez : echo "chaîne base64" | base64 -d > key.bin && git-crypt unlock key.bin. Note : c'est moins sécurisé — pas de phrase de passe supplémentaire pour protéger la clé, donc un compromis expose les données.
Avantages clés
- Contrôle total des données : Les notes restent dans votre dépôt Git avec un chiffrement de bout en bout AES-256.
- Flux de travail fluide : Chiffrement/déchiffrement automatique via les filtres Git — vous éditez des fichiers Markdown en clair.
- Multiplateforme : Fonctionne sur Linux, macOS et Windows (via WSL ou Git natif).
- Synchronisation automatisée : Le plugin Obsidian Git gère les commits et pushes programmés.
- Protections supplémentaires : Le hook pre-commit empêche les pushes accidentels de fichiers non chiffrés.
— Editorial Team
Aucun commentaire pour le moment.