核心功能与用法
bw-cli 是 Bitwarden 官方提供的命令行密码管理工具,覆盖完整的身份验证、密码库操作、密码生成、安全分享及组织管理功能。
认证流程(推荐解锁优先)
工具支持多种认证方式:邮箱+主密码、API Key、SSO 登录。推荐采用"先解锁,失败再登录"的策略以提升效率:
export BW_SESSION=$(bw unlock --passwordenv BW_PASSWORD --raw 2>/dev/null) || {
bw login "$BW_EMAIL" "$BW_PASSWORD"
export BW_SESSION=$(bw unlock --passwordenv BW_PASSWORD --raw)
}
bw sync # 任何库操作前必须同步密码库操作
- 查询:
bw list items --search github、bw get password "GitHub"、bw get totp "GitHub" - 管理:支持文件夹、集合、附件的创建/编辑/删除/恢复(软删除 30 天可恢复)
- 类型覆盖:登录项、安全笔记、信用卡、身份、SSH 密钥(type 1-5)
密码生成与安全分享
- 生成密码:
bw generate -ulns --length 32 - 生成助记词:
bw generate --passphrase --words 4 - Send 功能:创建有时效、可设密码保护的文本/文件安全分享链接
组织与团队协作
支持成员邀请确认、设备审批、集合权限管理、组织级导入导出。
显著优点
1. 官方出品,协议透明:开源实现,端到端加密,支持自托管 Vaultwarden
2. 开发者友好:完整的 JSON 输出、jq 管道集成、模板系统便于自动化
3. 安全机制完善:会话密钥隔离、API Key 支持 CI/CD 场景、指纹验证防中间人攻击
4. 生态完整:覆盖个人免费版到企业版全部功能,支持 60+ 种密码管理器导入
潜在局限与风险
| 局限 | 说明 |
|------|------|
| 依赖 Node.js/npm 或原生二进制 | 部分环境需手动安装依赖 |
| 自托管兼容性问题 | 某些 Vaultwarden 版本 API Key 登录存在已知问题,需回退到邮箱登录 |
| 无本地缓存智能同步 | 必须显式执行 `bw sync`,操作前忘记同步会导致数据不一致 |
| 会话密钥暴露风险 | `BW_SESSION` 若被记录到日志或环境导出,可导致 vault 临时解锁 |
适合人群
- 开发者/DevOps:需要在 CI/CD、脚本、Ansible/Terraform 中安全注入凭据
- 高级用户:偏好终端工作流,需要批量操作或自定义备份策略
- 安全管理员:管理企业组织、审计成员设备、执行合规导出
常规风险
- 主密码泄露:
.secrets文件若权限设置不当(非 600)或被提交至版本控制,将导致 vault 完全暴露 - 会话劫持:
BW_SESSION有效期较长,共享环境(如多用户服务器)需严格隔离 - 剪贴板残留:
get password输出可能进入 shell history,建议配合--quiet和管道使用 - 网络钓鱼:需验证自托管服务器指纹(
bw get fingerprint),防止 DNS 劫持至恶意实例