核心用法
bw-cli 是 Bitwarden 官方命令行工具,提供完整的密码管理功能。核心工作流分为三步:
1. 认证:bw login 验证身份,bw unlock 解密保险库并生成 BW_SESSION 会话密钥
2. 同步:必须先执行 bw sync 确保本地数据最新,避免读取过期条目
3. 操作:支持检索凭证(get password/username/totp)、管理条目(CRUD)、生成密码/短语、处理附件、组织协作等
典型自动化场景:
- CI/CD 流水线注入机密(API Key 认证 +
--passwordenv解锁) - 本地开发快速获取数据库/API 凭证
- 批量密码轮换与保险库导出
显著优点
- 官方原生:Bitwarden 官方维护,协议与云端/自托管完全兼容
- 功能完备:覆盖 90%+ Web 端功能,包括 TOTP、附件、组织管理
- 自动化友好:支持 API Key、环境变量注入,适合脚本集成
- 自托管支持:通过
bw config server切换 Vaultwarden 等私有实例 - 安全设计:会话密钥机制、本地加密缓存、无网络时仍可读取
潜在缺点与局限性
- 两步操作门槛:必须先 login 再 unlock,脚本需额外处理会话状态
- 同步依赖风险:忘记
bw sync可能读到旧数据,多人协作场景尤为危险 - JSON 处理依赖:创建/编辑条目需配合
jq和bw encode,学习曲线陡峭 - 网络依赖:除已缓存读取外,写操作和同步均需联网
- 无内置轮换提醒:不主动提示弱密码或重复密码,需配合其他工具
适合人群
- 开发者/DevOps 工程师(自动化凭证注入)
- 安全运维人员(批量保险库管理、审计导出)
- 自托管用户(Vaultwarden 管理)
- 终端重度用户(厌恶切换浏览器的效率追求者)
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 会话密钥泄露 | `BW_SESSION` 明文存在于环境变量 | 脚本使用后立即 `unset`,避免日志记录 |
| 主密码落盘 | 用户为便利保存密码到 `.secrets` 文件 | 强制 600 权限 + `.gitignore`,明确告知风险 |
| 数据残留 | 导出文件或附件处理不当 | 默认限制在工作区内,外部导出需确认 |
| 永久删除不可逆 | `--permanent` 无回收站 | 强制交互确认 |
| 自托管证书问题 | 私有 CA 证书不被信任 | 需手动配置 `NODE_EXTRA_CA_CERTS` |