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 里管理,解密密钥单独保管。