Sicheres Obsidian-Sync mit Git und Ende-zu-Ende-Verschlüsselung
Obsidian-Notizen über Geräte hinweg zu synchronisieren und dabei die Daten privat zu halten, ist mit Git und dem Tool git-crypt für transparente Verschlüsselung kinderleicht. Diese Methode gibt dir volle Kontrolle über deine Notizen und macht dich unabhängig von proprietären Cloud-Diensten.
Umgebung einrichten und GPG-Schlüssel erstellen
Beginne mit der Installation der notwendigen Software. Auf Arch Linux: sudo pacman -S gnupg git-crypt; auf Debian/Ubuntu: sudo apt install gnupg git-crypt. Sichere dann die Berechtigungen deines GPG-Verzeichnisses:
chmod 700 ~/.gnupg
find ~/.gnupg -type f -exec chmod 600 {} \;
find ~/.gnupg -type d -exec chmod 700 {} \;
Erzeuge einen asymmetrischen Schlüssel mit gpg --full-generate-key. Wähle dabei:
- Schlüsseltyp: RSA (Option 1).
- Größe: 4096 Bits.
- Ablauf: 0 (kein Ablauf).
- ID-Daten: Name und E-Mail.
- Passphrase: Pflicht für jedes Repo-Entsperren.
Für mehr Komfort: Cache die Passphrase 24 Stunden, indem du default-cache-ttl 86400 und max-cache-ttl 86400 in ~/.gnupg/gpg-agent.conf hinzufügst, dann gpgconf --reload gpg-agent ausführst.
Repository mit git-crypt initialisieren
Wechsle in deinen Notizen-Ordner und initialisiere ein Git-Repo: cd ~/notes && git init. Richte Verschlüsselung ein mit git-crypt init, dann füge deinen GPG-Schlüssel als vertrauenswürdig hinzu: git-crypt add-gpg-user --trusted [email protected].
Konfiguriere .gitignore und .gitattributes korrekt. In .gitignore Obsidian-Temp- und Systemdateien ausschließen:
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.obsidian/cache
.trash/
In .gitattributes Dateien für git-crypt-Verschlüsselung angeben:
.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
Commit-Reihenfolge ist entscheidend: Zuerst .gitattributes, dann alles andere, um unverschlüsselte Daten zu vermeiden.
git add .gitattributes
git commit -m "$(date '+%Y-%m-%d %H:%M')"
git add .
git commit -m "$(date '+%Y-%m-%d %H:%M')"
Verschlüsselungsstatus prüfen mit git-crypt status | grep WARNING. Remote-Repo einrichten und pushen.
Integration mit Obsidian und Automatisierung
Installiere das Obsidian Git-Plugin (von Vinzent) über die Obsidian-Einstellungen für Git-Operationen wie Pull, Commit und Push direkt in der UI oder zeitgesteuert. Wichtige Regel: Immer das Repo mit git-crypt unlock im Terminal entsperren, bevor du Obsidian startest. Sonst siehst du Binärkram statt Notiztext, und das Plugin könnte fehlerhafte Commits pushen.
Sicherheit steigern mit einem Pre-Commit-Hook, der unverschlüsselte Dateien blockt. Erstelle eine ausführbare .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 "Datei '$file' ist nicht verschlüsselt – Vorsicht!"
exit 1
fi
fi
done
exit 0
Git darauf hinweisen: git config core.hooksPath .githooks.
Migration und Backups
Zum Wechsel auf ein neues Gerät: Exportiere deinen geheimen GPG-Schlüssel: gpg --export-secret-keys --armor [email protected] > ~/key.asc. Sicher übertragen (z. B. via scp), importieren mit gpg --import, Repo klonen und git-crypt unlock ausführen. Schlüsseldatei danach auf beiden Geräten löschen. Backup deinen GPG-Schlüssel an einem sicheren Ort wie einem Passwort-Manager – ohne Schlüssel und Passphrase sind deine Notizen unzugänglich.
Alternative: Symmetrische Verschlüsselung
Falls GPG zu viel Aufwand ist, nutze symmetrische Schlüssel von git-crypt. Exportiere mit git-crypt export-key ~/key.bin, dann in Base64 umwandeln: base64 -i ~/key.bin. Den String im Passwort-Manager speichern. Auf anderem Gerät dekodieren und entsperren: echo "base64-string" | base64 -d > key.bin && git-crypt unlock key.bin. Achtung: Weniger sicher – kein extra Passphrase schützt den Schlüssel, Kompromittierung bedeutet Datenverlust.
Wichtige Vorteile
- Volle Datenkontrolle: Notizen bleiben in deinem Git-Repo mit AES-256-Ende-zu-Ende-Verschlüsselung.
- Nahtloser Workflow: Verschlüsseln/Entschlüsseln läuft automatisch über Git-Filter – du bearbeitest normale Markdown-Dateien.
- Plattformübergreifend: Funktioniert auf Linux, macOS und Windows (via WSL oder nativem Git).
- Automatisierte Synchronisation: Obsidian-Git-Plugin übernimmt zeitgesteuerte Commits und Pushes.
- Zusätzlicher Schutz: Pre-Commit-Hook verhindert versehentliche Pushes unverschlüsselter Dateien.
— Editorial Team
Noch keine Kommentare.