环境与配置管理60 条

age 文件加密

现代文件加密工具:命令行简洁、密钥短、无配置负担,常作为 SOPS 或脚本化加密场景的默认选择。

CI/CD 与发布速查开发更新于 2026-10-13

age 是什么

现代文件加密工具:命令行简洁、密钥短、无配置负担,常作为 SOPS 或脚本化加密场景的默认选择。基于 X25519 公钥加密,支持流式处理:age-keygen 生成密钥对,公钥加密、私钥解密。它本身不做访问管理与密钥轮换——多环境场景把密钥托管与审计交给上层流程,或按环境分发独立密钥。

基本信息

命令age-keygen 生成密钥,age -r 公钥加密,age -d -i 私钥解密
特点X25519 公钥加密、选项少、支持流式处理
集成SOPS 支持 age 接收方,CI 中私钥用受保护变量注入
边界不做访问管理与轮换,交给上层流程
密钥形式公钥可随仓库分发,私钥只进密钥库

典型使用场景

  • 加密配置文件:小团队共享加密后的配置
  • SOPS 后端:SOPS 加密的密钥文件用 age 密钥解密
  • 脚本管道:与 tar、标准输入输出流式配合
  • CI 解密:私钥通过受保护变量注入,运行期临时解密
  • 多环境隔离:按环境生成独立密钥对
  • 密钥轮换:接收方变化时重新加密并分发

示例

示例
age-keygen -o key.txt   # 生成密钥对,公钥在输出注释里
age -r age1... -o secrets.age secrets.txt   # 用公钥加密
age -d -i key.txt secrets.age > secrets.txt  # 用私钥解密
# CI 中私钥经受保护变量注入,解密结果只落在临时目录

使用要点读法

项说明注意
公钥可自由分发用于加密,随仓库走
私钥只有持有者保管泄露即需整体轮换
-i 参数解密时指定私钥文件权限收紧为只读
流式可接标准输入输出与其他命令管道组合
SOPS 集成作为加密后端之一密钥托管仍在上层
age 本身不做访问管理与轮换:多环境场景把密钥托管与审计交给上层平台。
私钥权限收紧:生成后立刻限制文件权限,避免同机其他用户读取。
公钥进仓库、私钥进密钥库:加密产物可以在 Git 里管理,解密密钥单独保管。

易错点

  • 私钥与密文同仓库:加密变成形式,私钥进密钥库或 CI 受保护变量
  • 用同一密钥覆盖全部环境:一处泄露波及所有环境,按环境分密钥
  • 私钥文件权限过宽:同机用户可直接读取,生成后立即收紧权限
  • 轮换没有清点密文:换了密钥旧密文打不开,先盘点引用再轮换

数据来源与参考

  • age 文档(age-encryption.org)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌