核心用法
Bitwarden CLI (bw) 是官方提供的命令行密码库管理工具,支持从终端安全读取密码、TOTP、安全笔记等敏感数据。
典型工作流:
1. 安装 CLI(npm/brew/choco 均可)
2. 创建 tmux 会话保持 BW_SESSION 环境变量
3. 使用 bw login(邮箱/密码/SSO)或 bw login --apikey 认证
4. 导出会话密钥:export BW_SESSION=$(bw unlock --raw)
5. 执行库操作:bw get password "GitHub"、bw list items --search "api"
关键命令:
bw get [password|username|totp|item] <name>- 读取特定字段bw list items [--search]- 枚举与搜索条目bw lock/bw logout- 安全结束会话bw config server <url>- 支持自托管(Vaultwarden)
---
显著优点
1. 官方维护:由 Bitwarden 公司直接开发,代码开源(GitHub),安全更新及时
2. 认证灵活:支持邮箱密码、API Key、SSO 三种方式,兼顾交互与自动化场景
3. 输出可控:支持 JSON 输出配合 jq 处理,便于脚本集成
4. 自托管兼容:通过 bw config server 可对接 Vaultwarden 等私有实例
5. 零本地存储:默认不落地密钥,依赖内存中的 BW_SESSION
---
潜在局限
1. tmux 强制依赖:文档要求必须在 tmux 会话内运行以保持环境变量,在容器或受限环境中可能不可用
2. 会话管理复杂:BW_SESSION 有效期至主动 lock/logout,跨窗口/会话易丢失需重新解锁
3. API Key 需二次解锁:使用 --apikey 登录后仍需 bw unlock,不如预期简洁
4. 无内置轮换机制:依赖外部脚本管理密钥过期与轮换
5. 网络依赖:所有操作需连接 Bitwarden 服务器或自托管实例
---
适合人群
- DevOps/SRE 工程师:CI/CD 流水线中安全注入密钥
- 开发者:本地开发环境自动化获取 API 密钥、数据库密码
- 安全管理员:批量审计密码库或导出报告
- 自托管用户:管理 Vaultwarden 私有实例
---
常规风险
1. 会话密钥泄露:BW_SESSION 若被 ps、/proc 读取或写入 shell history,可导致库解密
2. 脚本残留:自动化脚本中硬编码 BW_CLIENTSECRET 或导出密钥到日志
3. tmux 共享风险:多用户共享 tmux 会话时 BW_SESSION 可见
4. 钓鱼服务器:bw config server 若指向恶意域名可造成凭证泄露
5. 解锁状态遗忘:长时间保持解锁状态增加暴露窗口