介绍
# Bitwarden CLI Skill
Bitwarden 命令行界面 (CLI) 提供了对您的 Bitwarden 保险库的完全访问权限,以便以编程方式检索密码、安全笔记和其他机密信息。
## 工作流程要求
**关键:** 始终在专用的 tmux 会话中运行 `bw` 命令。CLI 需要一个会话密钥 (`BW_SESSION`) 才能在身份验证后执行所有保险库操作。tmux 会话可以在命令之间保持此环境变量。
### 必需的工作流程
1. **验证 CLI 安装**:运行 `bw --version` 以确认 CLI 可用 2. **创建专用的 tmux 会话**:`tmux new-session -d -s bw-session` 3. **连接并身份验证**:在会话内运行 `bw login` 或 `bw unlock` 4. **导出会话密钥**:解锁后,按照 CLI 的指示导出 `BW_SESSION` 5. **执行保险库命令**:在同一会话内使用 `bw get`、`bw list` 等
### 身份验证方法
| 方法 | 命令 | 使用场景 | |--------|---------|----------| | 邮箱/密码 | `bw login` | 交互式会话,首次设置 | | API Key | `bw login --apikey` | 自动化,脚本(需要单独解锁) | | SSO | `bw login --sso` | 企业/组织账户 |
使用邮箱/密码进行 `bw login` 后,您的保险库会自动解锁。对于 API Key 或 SSO 登录,您必须随后运行 `bw unlock` 来解密保险库。
### 会话密钥管理
解锁命令会输出一个会话密钥。您**必须**导出它:
```bash # Bash/Zsh export BW_SESSION="<session_key_from_unlock>"
# Or capture automatically export BW_SESSION=$(bw unlock --raw) ```
会话密钥在您运行 `bw lock` 或 `bw logout` 之前一直有效。它们**不会**跨终端窗口持久化——因此需要使用 tmux。
## 读取机密
```bash # Get password by item name bw get password "GitHub"
# Get username bw get username "GitHub"
# Get TOTP code bw get totp "GitHub"
# Get full item as JSON bw get item "GitHub"
# Get specific field bw get item "GitHub" | jq -r '.fields[] | select(.name=="api_key") | .value'
# List all items bw list items
# Search items bw list items --search "github" ```
## 安全护栏
- **绝不**在日志、代码或用户可见的命令输出中暴露机密信息 - **绝不**将机密信息写入磁盘,除非绝对必要 - **始终**在完成保险库操作后使用 `bw lock` - **首选**将机密信息直接读取到环境变量中或通过管道传递给命令 - 如果收到“保险库已锁定”错误,请使用 `bw unlock` 重新进行身份验证 - 如果收到“您未登录”错误,请先运行 `bw login` - 如果系统上不可用 tmux,请停止并请求协助
## 环境变量
| 变量 | 用途 | |----------|---------| | `BW_SESSION` | 用于保险库解密的会话密钥(所有保险库命令必需) | | `BW_CLIENTID` | API Key 客户端 ID(用于 `--apikey` 登录) | | `BW_CLIENTSECRET` | API Key 客户端密钥(用于 `--apikey` 登录) | | `BITWARDENCLI_APPDATA_DIR` | 自定义配置目录(启用多账户设置) |
## 自托管服务器
对于 Vaultwarden 或自托管的 Bitwarden:
```bash bw config server https://your-bitwarden-server.com ```
## 参考文档
- [入门指南](references/get-started.md) - 安装和初始设置 - [CLI 示例](references/cli-examples.md) - 常见使用模式和高级操作