OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  openclaw-bitwarden:在智能体环境中设置并使用 Bitwarden 命令行

openclaw-bitwarden:在智能体环境中设置并使用 Bitwarden 命令行

 
  chao ·  2026-02-04 04:37:29 · 3 次点击  · 0 条评论  

名称: bitwarden
描述: 设置并使用 Bitwarden CLI (bw)。适用于安装 CLI、解锁保险库或通过 bw 读取/生成密钥的场景。通过 BW_SESSION 处理会话管理。
主页: https://bitwarden.com/help/cli/
元数据: {"openclaw":{"emoji":"🔐","requires":{"bins":["bw","tmux"]},"install":[{"id":"brew-bw","kind":"brew","formula":"bitwarden-cli","bins":["bw"],"label":"安装 Bitwarden CLI (brew)"},{"id":"brew-tmux","kind":"brew","formula":"tmux","bins":["tmux"],"label":"安装 tmux (brew)"}]}}


Bitwarden CLI

通过 Bitwarden 命令行界面管理密码与密钥。

参考文档

  • references/get-started.md(安装、登录、解锁流程)
  • references/cli-examples.md(实际 bw 命令示例)

工作流程

  1. 检查 CLI 是否就绪bw --version
  2. 检查登录状态bw status(返回包含状态字段的 JSON)。
  3. 如果未登录:执行 bw login(存储 API 密钥,提示输入主密码)。
  4. 必需步骤:为所有 bw 命令创建一个全新的 tmux 会话。
  5. 在 tmux 中解锁保险库:执行 bw unlock(输出会话密钥)。
  6. 导出会话密钥export BW_SESSION="<密钥>"
  7. 验证访问权限:依次执行 bw syncbw list items --search test

必需的 tmux 会话

Bitwarden CLI 要求通过 BW_SESSION 环境变量来执行认证命令。为了在多个命令间保持会话状态,请务必在专用的 tmux 会话中运行 bw

示例(关于 socket 约定,请参阅 tmux 技能):

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

# 解锁并捕获会话密钥
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

# 捕获输出
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200

# 完成后清理
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 <查询词> 搜索项目
bw get item <ID或名称> 获取特定项目(JSON)
bw get password <ID或名称> 仅获取密码
bw get username <ID或名称> 仅获取用户名
bw get totp <ID或名称> 获取 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(自托管的 Bitwarden 兼容服务器)进行本地测试。

快速开始

# 安装 mkcert 并生成本地证书(一次性操作)
brew install mkcert
mkcert -install
cd /path/to/openclaw-bitwarden
mkdir -p certs && cd certs
mkcert localhost 127.0.0.1 ::1
cd ..

# 启动 Vaultwarden 和 Caddy
docker compose up -d

# 配置 bw CLI 使用本地服务器
bw config server https://localhost:8443

# 通过 Web 界面(https://localhost:8443)创建测试账户
# 或运行设置脚本:
./scripts/setup-test-account.sh

# 测试技能工作流程
./scripts/test-skill-workflow.sh

测试凭据

  • 服务器 URL: https://localhost:8443
  • 管理面板: https://localhost:8443/admin(令牌:test-admin-token-12345
  • 建议的测试账户: test@example.com / TestPassword123!

Node.js CA 信任

bw CLI 需要信任 mkcert 的 CA。在运行 bw 命令前导出:

export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"

或将其添加到 shell 配置文件中以实现持久化。

清理

docker compose down -v  # 移除容器和数据
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor