头图

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仓库:在GitHubGitee创建您的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自研,可以自动实现文件操作无感的加密解密。
实践中有疑问?欢迎在评论区留言探讨!关注本专栏,获取更多独立开发者相关深度评测。

独立开发爱好者
1 声望0 粉丝

独立开发者,AI大模型应用,订阅每日生意机会分析推送,全栈架构技术分享。SEO实战,流量广告变现被动收入,外贸出海工具,科技讯刊