核心用法
Bitwarden CLI (bw) 是官方提供的命令行密码管理工具,完整覆盖身份认证、密码库操作、安全分享与组织管理四大场景。
身份认证:支持交互式登录、API Key、SSO 三种方式;登录后需执行 bw unlock 生成 BW_SESSION 会话密钥,后续所有操作依赖此密钥。支持自托管服务器与多区域云端(美/欧)。
密码库操作:
- 查询:
bw list items --search <关键词>、bw get password "GitHub"快速提取特定字段 - 创建/编辑:通过
bw get template获取 JSON 模板,配合jq修改后bw encode | bw create/edit - 类型覆盖:登录项、安全笔记、银行卡、身份信息、SSH 密钥(type 1-5)
- 附件管理:支持上传/下载文件附件
- 回收站:30 天软删除恢复机制
密码生成:bw generate 支持 14-32 位随机密码,--passphrase 模式生成 diceware 风格短语,可自定义词数、分隔符与大小写。
Bitwarden Send:创建阅后即焚的安全分享链接(文本/文件),支持密码保护、隐藏内容与 1-30 天有效期。
组织功能:企业用户可管理成员、设备审批、集合权限,支持 bw move 将个人项迁移至组织。
导入导出:兼容 50+ 密码管理器格式,支持加密 JSON、ZIP(含附件)导出。
显著优点
1. 功能完整性:唯一覆盖 Bitwarden 全功能的 CLI,包括 Send、SSH 密钥、设备审批等高级特性
2. 自动化友好:JSON 输出 + jq 管道支持,适合脚本集成;--quiet 模式避免敏感信息泄露至 stdout
3. 安全设计:主密码不出现在命令历史;会话密钥可设环境变量或文件;附件与导出均支持加密
4. 生态兼容:官方维护,与 Vaultwarden 等第三方服务端兼容
5. 模板化工作流:bw get template + jq 实现声明式密码项管理
局限性与风险
- 会话密钥泄露:
BW_SESSION若被窃取,攻击者可完全访问密码库(建议配合bw lock及时清理) - 主密码暴露风险:
--passwordenv/--passwordfile模式需确保文件权限 600 且不在版本控制中 - 本地缓存:
bw login会在本地生成加密缓存,设备丢失且未锁定时有暴力破解风险 - 无内置密钥轮换:SSH 密钥、API Key 需手动更新
- 依赖 Node.js/npm:部分安装渠道存在供应链风险(建议优先使用官方二进制)
适合人群
- DevOps/SRE:CI/CD 流水线注入密钥、自动化证书管理
- 开发者:快速查询开发账号、生成高强度临时密码
- 安全管理员:批量组织成员管理、审计导出
- 自托管用户:Vaultwarden 等第三方服务端管理
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 会话劫持 | BW_SESSION 被进程读取 | 使用 `bw lock` 及时销毁,避免 `export` 至全局 shell |
| 密码文件泄露 | `.secrets` 文件权限不当 | `chmod 600`,加入 `.gitignore`,使用密钥管理服务替代 |
| 钓鱼 CLI | 非官方渠道下载的篡改版本 | 仅通过 bitwarden.com 或官方包管理器安装 |
| 屏幕日志泄露 | 密码/密钥出现在终端历史 | 使用 `--quiet` + 管道处理敏感输出 |