Zpět na domů

Bezpečné synchronizace Obsidian: Git a šifrování

Podrobný návod na nastavení bezpečné synchronizace poznámek v Obsidian pomocí Git a nástroje git-crypt pro end-to-end šifrování. Článek pokrývá vytvoření GPG klíče, inicializaci repozitáře, integraci s pluginem Obsidian Git, nastavení pre-commit hooků a metody zálohování.

Jak synchronizovat Obsidian se šifrováním: kompletní průvodce
Advertisement 728x90

Bezpečná synchronizace Obsidianu s Git a end-to-end šifrováním

Synchronizace poznámek v Obsidianu mezi zařízeními při zachování soukromí je úkol, který lze vyřešit pomocí Gitu a nástroje git-crypt pro transparentní šifrování. Tento přístup poskytuje úplnou kontrolu nad daty a eliminuje závislost na cloudových službách s uzavřeným kódem.

Nastavení prostředí a vytvoření GPG klíče

Před začátkem práce je nutné nainstalovat základní software. V Arch Linux použijte sudo pacman -S gnupg git-crypt, v Debian/Ubuntu — sudo apt install gnupg git-crypt. Po instalaci je důležité nastavit správná přístupová práva pro adresář GPG:

chmod 700 ~/.gnupg
find ~/.gnupg -type f -exec chmod 600 {} \;
find ~/.gnupg -type d -exec chmod 700 {} \;

Další krok — generace asymetrického klíče pomocí příkazu gpg --full-generate-key. V procesu vytváření zvolte:

Google AdInline article slot
  • Typ klíče: RSA (volba 1).
  • Velikost: 4096 bitů.
  • Platnost: 0 (neomezená).
  • Identifikační údaje: jméno a email.
  • Heslo — bude vyžadováno při každém odemčení repozitáře.

Pro pohodlí můžete nastavit ukládání hesla do cache na 24 hodin, přidáním řádků default-cache-ttl 86400 a max-cache-ttl 86400 do ~/.gnupg/gpg-agent.conf, poté spusťte gpgconf --reload gpg-agent.

Inicializace repozitáře s git-crypt

Přejděte do adresáře s poznámkami a inicializujte Git repozitář: cd ~/notes && git init. Poté spusťte git-crypt init pro nastavení šifrování a přidejte svůj GPG klíč do seznamu důvěryhodných: git-crypt add-gpg-user --trusted [email protected]. Kriticky důležité je správně nastavit soubory .gitignore a .gitattributes. V .gitignore vylučte dočasné a systémové soubory Obsidianu:

.obsidian/workspace.json
.obsidian/workspace-mobile.json
.obsidian/cache
.trash/

V .gitattributes určete, které soubory mají být šifrovány git-crypt. Příklad konfigurace:

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

Pořadí commitů má význam. Nejprve zcommitujte .gitattributes, poté ostatní soubory. Toto zabrání odeslání nezašifrovaných dat do vzdáleného repozitáře.

git add .gitattributes
git commit -m "$(date '+%Y-%m-%d %H:%M')"
git add .
git commit -m "$(date '+%Y-%m-%d %H:%M')"

Zkontrolujte stav šifrování příkazem git-crypt status | grep WARNING. Poté nastavte vzdálený repozitář a proveďte první push.

Integrace s Obsidianem a automatizace

Pro práci s Git přímo z Obsidianu nainstalujte plugin Obsidian Git (autor Vinzent) přes nastavení programu. Plugin umožňuje provádět základní operace — pull, commit, push — přes grafické rozhraní nebo podle plánu. Důležité pravidlo: vždy odemkněte repozitář příkazem git-crypt unlock v terminálu před spuštěním Obsidianu. V opačném případě program zobrazí binární data místo textu poznámek a plugin může odeslat nesprávné commity.

Google AdInline article slot

Pro zvýšení bezpečnosti nastavte pre-commit hook, který zabrání commitu nezašifrovaných souborů. Vytvořte spustitelný soubor .githooks/pre-commit s následujícím obsahem:

#!/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 "file '$file' is not encrypted - be careful"
            exit 1
        fi
    fi
done
exit 0

Poté nastavte Git, aby používal tento adresář pro hooky: git config core.hooksPath .githooks.

Migrace a zálohování

Pro přenos nastavení na nové zařízení exportujte tajný GPG klíč ze starého počítače: gpg --export-secret-keys --armor [email protected] > ~/key.asc. Zkopírujte soubor bezpečným způsobem (například přes scp), importujte na novém zařízení příkazem gpg --import, naklonujte repozitář a proveďte git-crypt unlock. Po úspěšné migraci odstraňte soubor klíče z obou zařízení. Nezapomeňte vytvořit záložní kopii GPG klíče a uložit ji na bezpečném místě, například v správci hesel. Bez klíče a hesla bude přístup k zašifrovaným poznámkám nemožný.

Alternativa: symetrické šifrování

Pokud nastavení GPG připadá příliš složité, git-crypt podporuje práci se symetrickými klíči. Exportujte klíč příkazem git-crypt export-key ~/key.bin. Pro pohodlí uložení jej můžete převést na base64 řetězec: base64 -i ~/key.bin. Tento řetězec lze uložit v správci hesel. Pro odemčení na jiném zařízení dekódujte řetězec zpět do binárního souboru a použijte ho: echo "base64 string" | base64 -d > key.bin && git-crypt unlock key.bin. Uvědomte si, že tato metoda je méně bezpečná: klíč není chráněn dodatečným heslem a jeho kompromitace povede k odhalení dat.

Co je důležité

  • Úplná kontrola nad daty: Všechny poznámky jsou uloženy ve vašem Git repozitáři s použitím end-to-end šifrování AES-256.
  • Průhlednost procesu: Šifrování a dešifrování probíhá automaticky přes Git filtry, pracujete s běžnými soubory Markdown.
  • Křížová platforma: Řešení funguje na Linux, macOS a Windows (přes WSL nebo native Git).
  • Automatizace synchronizace: Plugin Obsidian Git umožňuje nastavit automatické commity a pushy podle plánu.
  • Dodatečná ochrana: Pre-commit hook zabraňuje náhodnému odeslání nezašifrovaných souborů do vzdáleného repozitáře.

— Editorial Team

Advertisement 728x90

Číst dál