核心用法
Bitwarden CLI (bw) 是官方提供的命令行密码管理工具,用于程序化读取密码库中的凭据、安全笔记和 TOTP 等敏感数据。
标准工作流(强制要求):
1. 在专用 tmux 会话中运行所有命令(tmux new-session -d -s bw-session)
2. 身份验证:bw login(邮箱/密码)、bw login --apikey(自动化场景)或 bw login --sso(企业账户)
3. 解锁并导出会话密钥:export BW_SESSION=$(bw unlock --raw)
4. 执行查询:bw get password <item>、bw list items --search <keyword>
5. 完成后锁定:bw lock
关键安全机制:BW_SESSION 环境变量是解密密码库的唯一凭证,不持久化且不会跨终端继承,tmux 会话确保密钥在操作期间可用。
显著优点
- 官方出品:Bitwarden 官方维护,代码开源,安全审计透明
- 多认证方式:支持交互式登录、API 密钥(适合 CI/CD)、SSO 企业集成
- 完整功能:密码、用户名、TOTP、自定义字段、附件全支持
- 自托管兼容:可通过
bw config server切换至 Vaultwarden 等私有实例 - 管道友好:输出可直接通过
jq处理,便于脚本集成
潜在局限
- 会话管理复杂:
BW_SESSION不自动持久化,必须依赖 tmux 或手动导出 - 无内置缓存:每次启动需重新解锁,不适合高频瞬时调用
- npm 依赖:部分安装渠道依赖 Node.js 生态
- 企业功能限制:SSO 和无密码登录需付费组织账户
适合人群
- 开发者需要在脚本/部署流程中安全注入密钥
- 运维工程师管理服务器凭据和证书
- 安全-conscious 用户偏好命令行工具且已使用 Bitwarden 生态
常规风险
- 会话密钥泄露:
BW_SESSION若被导出到日志或子进程,可导致未授权访问 - 屏幕抓取:tmux 会话内容可能被其他用户读取(共享服务器场景)
- 残留进程:未正确
bw lock或关闭 tmux 会话可能延长暴露窗口 - 脚本硬编码:误将
BW_CLIENTSECRET写入脚本文件造成凭证泄露