Retour à l'accueil

Synchronisation sécurisée d'Obsidian : Git et chiffrement

Guide détaillé pour configurer la synchronisation sécurisée des notes dans Obsidian en utilisant Git et l'outil git-crypt pour un chiffrement de bout en bout. L'article couvre la création d'une clé GPG, l'initialisation du dépôt, l'intégration avec le plugin Obsidian Git, la configuration de hooks pre-commit, et les méthodes de sauvegarde.

Comment synchroniser Obsidian avec chiffrement : Guide complet
Advertisement 728x90

## 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 :

Google AdInline article slot
  • 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 :

Google AdInline article slot
.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.

Google AdInline article slot

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

Advertisement 728x90

Lire ensuite