核心功能
Keychain Bridge 是一套面向 macOS 的密钥管理方案,核心目标是用系统级 Keychain 替代明文文件存储敏感凭证。它通过"Group A/B"双轨架构平衡安全性与兼容性:
- Group A(钥匙串直连):Python 脚本直接调用
keychain_helper.get_secret(),无磁盘残留 - Group B(文件桥接):启动时由 Python 进程将密钥写入
chmod 600临时文件,供 bash 脚本读取
显著优势
1. 零网络暴露:所有操作本地执行,无外发请求
2. ACL 自动修复:迁移脚本会自动为系统 Python、Homebrew Python 等多版本注入相同密钥,解决钥匙串"每二进制文件权限隔离"的痛点
3. Tahoe 兼容性:针对 macOS 26.x 的 security CLI 挂起、SSH 会话 -25308 错误等已知问题提供明确绕过方案
4. 审计透明:audit_secrets.py 可扫描未迁移的明文文件、ACL 异常项、多版本 Python 的 keyring 库安装状态
潜在局限
- 架构复杂度高:用户需理解 Group A/B 的适用场景,错误选择会导致 LaunchAgent 挂起
- Homebrew Python 依赖:需为每个 Python 版本单独安装
keyring,并加--break-system-packages参数 - 启动时延:Group B 方案依赖
populate_secrets.sh在开机时执行,若钥匙串未解锁会阻塞后续脚本 - 交互式限制:SSH 会话中直接钥匙串访问会失败,必须预解锁或通过 LaunchAgent 代理
适用人群
- 在 macOS 上运行自动化脚本(OpenClaw、Cron、LaunchAgent)的开发者
- 受合规要求约束、需消除明文密钥文件的运维人员
- 已升级或计划升级至 macOS Tahoe 26.x 的用户(针对性修复了系统级回归)
风险提醒
- 升级 macOS 后需重新验证:Tahoe 的钥匙串行为变更频繁,建议每次系统更新后运行健康检查
- 钥匙串密码遗忘:若使用
security unlock-keychain方案,密码需安全托管;若遗忘,所有 Group A/B 密钥将无法自动读取 - 文件桥残留:Group B 的临时文件虽为 600 权限,但仍属攻击面,建议配合全盘加密(FileVault)使用