动态

详情 返回 返回

基於Rust開發git-cryptx與Obsidian實現加密多機同步的寫作方案 - 动态 详情

1280X1280.PNG

「知識管理的盡頭,是安全與效率的平衡」—— 你的每一份筆記都值得被加密保護


痛點直擊:為什麼需要加密同步?

1280X1280-2.PNG

Obsidian 的好用程度不必多説(個人心目中最佳),然而官方同步服務年費高達 48~96 美元,且對隱私敏感用户而言,將筆記明文存儲在第三方平台存在風險。 

使用 Obsidian Git 插件同步方案雖然免費,但安全性存在兩大硬傷: 

  1. 隱私泄露:配置文件、日記、賬號密碼等敏感內容以明文形式存儲Github、Gitea等庫容易泄露
  2. 私有部署Git倉庫:需要一定的部署經驗和服務器資源,即使私有部署特別敏感數據最好也加密

    1. 私有部署推薦gitea,佔用資源極小,穩定

解決方案:git-cryptx 的毛遂自薦

1280X1280-3.PNG

該工具為博主基於Rust開發開源,功能、性能、安全性已經過驗證發佈穩定版,如有問題和功能需求歡迎issues。

  • 本項目長期維護,同類型工具git-crypt作者已基本不更新功能和解決issues。

特性亮點

  1. 使用簡單:僅需git-cryptx init初始化和set-key設置密鑰即可配置完成
  2. 無感加解密:文件在 git add 時自動加密,git checkout 時自動解密,全程無需手動干預
  3. 自由定義加密範圍:支持配置個別類型的文件或某些文件夾下的,僅需配置一次
  4. AES-256-GCM 軍用級加密:採用256位密鑰的高級加密標準(AES)算法,結合伽羅瓦/計數器模式(GCM),提供機密性、完整性和真實性保護
  5. 跨平台支持:完美兼容 Windows/macOS/Linux,與Git工具、Obsidian Git 插件深度適配

五分鐘搭建安全筆記體系

該方案已通過以下環境驗證:

  • macOS Sequoia 15.3 + Obsidian 1.8.4
  • Windows 10 + Obsidian 1.8.4

第一步:安裝工具鏈

# MacOS Homebrew 一鍵安裝
brew tap ChrisHyperFunc/brew
brew install git-cryptx
brew upgrade git-cryptx  # 保持最新版本

# Windows 下載安裝
https://github.com/ChrisHyperFunc/git-cryptx/releases/tag/v1.0.0
解壓後得到 git-cryptx.exe
需要配置系統環境變量$Path才能使用,這裏推薦直接複製git-cryptx.exe到安裝Git的目錄
Git一般已經配置Path,我的Git安裝目錄複製到:
E:\Applications\Git\cmd\git-cryptx.exe

# Linux 下載安裝
https://github.com/ChrisHyperFunc/git-cryptx/releases/tag/v1.0.0
解壓後得到 git-cryptx,請確保將可執行文件永久添加到系統的 PATH 中:
將以下行添加到您的 ~/.bashrc、~/.bash_profile 或 ~/.zshrc 文件中:
export PATH="$PATH:/path/to/your/git-cryptx-folder"
然後運行:
source ~/.bashrc  # 或 source ~/.bash_profile 或 source ~/.zshrc

第二步:初始化加密倉庫

任意Git倉庫:在GitHub或Gitee創建您的Git倉庫(Git如何使用本文不做重點説明)

使用命令工具操作:
git clone https://github.com/yourname/obsidian-doc.git
cd obsidian-doc  # 進入你的筆記庫目錄

git-cryptx init      # 初始化 git-cryptx
git-cryptx set-key pass123456  # 設置加密解密的密碼

注意:密碼會存儲在.git/cryptx/keys/global_ase_key文件中,用記事本打開可獲取密碼。

第三步:配置加密規則

編輯 .gitattributes 文件:

遵循gitattributes語法規則,配置您想加密的文件:
example.secret filter=git-cryptx diff=git-cryptx
*.secret filter=git-cryptx diff=git-cryptx
config/*.key filter=git-cryptx diff=git-cryptx
sensitive/* filter=git-cryptx diff=git-cryptx
sub_tree_directories/** filter=git-cryptx diff=git-cryptx

如有必要排除(gitattributes文件一定不要加密)
.gitattributes !filter !diff

第四步:集成 Obsidian Git

  1. 安裝 Obsidian Git 插件 
  2. 配置自動同步策略(推薦 10 分鐘間隔) 

Unknown.png

Unknown2.png


高階玩法:多設備協同指南

新設備接入步驟

克隆加密倉庫

使用命令工具操作:
git clone https://github.com/yourname/obsidian-doc.git
cd obsidian-doc  # 進入你的筆記庫目錄

使用git-cryptx初始化及設置密鑰

使用命令工具操作:
git-cryptx init      # 初始化 git-cryptx
git-cryptx set-key pass123456  # 設置加密解密的密碼

重新檢出文件(該操作用於解密已加密的文件)
# Clean working directory
git clean -fd
# Checkout files to trigger decryption
git checkout .

打開 Obsidian 選擇該目錄即可同步寫作(不需要在下載Git插件)


避坑指南:開發者親授秘籍

  1. 衝突解決遇到 <<<<<<< HEAD 衝突時,需解決明文衝突,可使用IDEA等工具方便操作
  2. 衝突避免在多機同步使用時,編輯完文檔後最後看下是否有沒推送的改動,確保全部提交,一般workspace.json容易衝突
    Unknown3.png
  3. 出現 git-cryptx Command Not Found異常Obsidian Git插件面板

    1. 該問題原因是Git插件內部執行git-cryptx命令時,無法正確讀取系統環境變量,即使其他命令行工具都能正常讀取。此文件在Mac系統中可能會出現。
    2. 解決辦法:修改.git/config中指定執行git-cryptx為絕對路徑
    PS D:\obsidian-doc\.git> cat config
    [core]
            repositoryformatversion = 0
            filemode = false
            bare = false
            logallrefupdates = true
            symlinks = false
            ignorecase = true
    [remote "origin"]
            url = ssh://git@github.com/yourname/obsidian-doc.git
            fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
            remote = origin
            merge = refs/heads/master
    [filter "git-cryptx"]
            clean = git-cryptx clean %f #修改此處為git-cryptx絕對路徑
            smudge = git-cryptx smudge %f #修改此處為git-cryptx絕對路徑
            required = true
    [diff "git-cryptx"]
            textconv = git-cryptx diff #修改此處為git-cryptx絕對路徑
    
    修改後的效果:
    # Windows
    [filter "git-cryptx"]
            clean = E:/Applications/Git/cmd/git-cryptx.exe clean %f
            smudge = E:/Applications/Git/cmd/git-cryptx.exe smudge %f
            required = true
    [diff "git-cryptx"]
            textconv = E:/Applications/Git/cmd/git-cryptx.exe diff
         
    # Mac 或 Linux 類似
    [filter "git-cryptx"]
            clean = ~/Git/cmd/git-cryptx clean %f
            smudge = ~/Git/cmd/git-cryptx smudge %f
            required = true
    [diff "git-cryptx"]
            textconv = ~/Git/cmd/git-cryptx diff

結語:讓知識自由流動

通過 Obsidian+Git+git-cryptx 的組合拳,我們既獲得了 Git 的版本控制與多端同步能力,又通過透明加密守護了隱私數據。 

Obsidian地址:https://obsidian.md

項目地址:https://github.com/ChrisHyperFunc/git-cryptx 

本文作者:DeepSeek 初稿,博主Chris校對完善。

AI 提示詞:
你現在是科技/IT自媒體的優秀從業者,請以《效率工具|Obsidian+git-cryptx:內容加密多機同步的筆記寫作方案》為題,生成md格式的一篇文章。要求符合科技/IT自媒體從業者的表達邏輯,要符合微信公眾號、知乎、掘金等審核要求,吸引讀者,不要生硬。需要貼圖的地方空出來後面補充。
標題內容解釋:Obsidian + Git 插件實現多機同步,git-cryptx是博主採用Rust自研,可以自動實現文件操作無感的加密解密。
實踐中有疑問?歡迎在評論區留言探討!關注本專欄,獲取更多獨立開發者相關深度評測。

Add a new 评论

Some HTML is okay.