介绍
# Bitwarden CLI
通过 Bitwarden CLI 管理密码和密钥。
## 参考文献
- `references/get-started.md`(安装 + 登录 + 解锁流程) - `references/cli-examples.md`(真实的 `bw` 示例)
## 工作流
1. 检查 CLI 是否存在:`bw --version`。 2. 检查登录状态:`bw status`(返回包含 status 字段的 JSON)。 3. 如果未登录:`bw login`(存储 API 密钥,提示输入主密码)。 4. 必需:为所有 `bw` 命令创建一个新的 tmux 会话。 5. 在 tmux 内解锁密码库:`bw unlock`(输出会话密钥)。 6. 导出会话密钥:`export BW_SESSION="<key>"`。 7. 验证访问权限:`bw sync` 然后 `bw list items --search test`。
## 必需的 tmux 会话
Bitwarden CLI 需要使用 BW_SESSION 环境变量来执行已认证的命令。为了在多个命令之间保持会话,请始终在专用的 tmux 会话中运行 `bw`。
示例(有关套接字约定,请参阅 `tmux` 技能):
```bash SOCKET_DIR="${CLAWDBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/openclaw-tmux-sockets}" mkdir -p "$SOCKET_DIR" SOCKET="$SOCKET_DIR/openclaw-bw.sock" SESSION="bw-auth-$(date +%Y%m%d-%H%M%S)"
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
# Unlock and capture session key tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'export BW_SESSION=$(bw unlock --raw)' Enter tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'bw sync' Enter tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'bw list items --search github' Enter
# Capture output tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200
# Cleanup when done tmux -S "$SOCKET" kill-session -t "$SESSION" ```
## 常用命令
| 命令 | 描述 | |---------|-------------| | `bw status` | 检查登录/锁定状态(JSON) | | `bw login` | 使用电子邮件/密码或 API 密钥登录 | | `bw unlock` | 解锁密码库,返回会话密钥 | | `bw lock` | 锁定密码库 | | `bw sync` | 与服务器同步密码库 | | `bw list items` | 列出所有项目 | | `bw list items --search <query>` | 搜索项目 | | `bw get item <id-or-name>` | 获取特定项目(JSON) | | `bw get password <id-or-name>` | 仅获取密码 | | `bw get username <id-or-name>` | 仅获取用户名 | | `bw get totp <id-or-name>` | 获取 TOTP 代码 | | `bw generate -ulns --length 32` | 生成密码 |
## 防护措施
- 切勿将密钥粘贴到日志、聊天或代码中。 - 始终使用 tmux 在命令之间保持 BW_SESSION。 - 如果只需要密码,优先使用 `bw get password` 而不是解析完整的项目 JSON。 - 如果命令返回“Vault is locked”(密码库已锁定),请在 tmux 内重新运行 `bw unlock`。 - 不要在 tmux 外部运行已认证的 `bw` 命令;会话将无法持久化。 - 完成后锁定密码库:`bw lock`。
## 使用 Vaultwarden 进行测试
此技能包含一个 Docker Compose 设置,用于通过 [Vaultwarden](https://github.com/dani-garcia/vaultwarden)(自托管的 Bitwarden 兼容服务器)进行本地测试。
### 快速开始
```bash # Install mkcert and generate local certs (one-time) brew install mkcert mkcert -install cd /path/to/openclaw-bitwarden mkdir -p certs && cd certs mkcert localhost 127.0.0.1 ::1 cd ..
# Start Vaultwarden + Caddy docker compose up -d
# Configure bw CLI to use local server bw config server https://localhost:8443
# Create a test account via web UI at https://localhost:8443 # Or run the setup script: ./scripts/setup-test-account.sh
# Test the skill workflow ./scripts/test-skill-workflow.sh ```
### 测试凭据
- **Server URL(服务器地址):** https://localhost:8443 - **Admin Panel(管理面板):** https://localhost:8443/admin(令牌:`test-admin-token-12345`) - **建议的测试账户:** [email protected] / TestPassword123!
### Node.js CA 信任
bw CLI 需要信任 mkcert CA。在运行 bw 命令之前导出:
```bash export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem" ```
或者将其添加到您的 Shell 配置文件中以保持持久化。
### 清理
```bash docker compose down -v # Remove container and data ```