Bitwarden CLI管理

15分钟前更新 1 00
Bitwarden CLI管理Bitwarden CLI管理
Bitwarden CLI管理

技能简介

通过命令行操作 Bitwarden 密码库,支持登录解锁、搜索条目、读取密码与 TOTP、生成强密码。使用 tmux 会话保持 BW_SESSION 环境变量,避免重复解锁。

业务背景

Bitwarden CLI管理为运维与开发人员提供命令行密码操作能力,支持脚本化调用与服务器端自动化场景。通过tmux会话保持登录状态,避免高频解锁中断工作流,同时满足批量查询、密码生成等DevOps场景下的凭证管理需求,兼顾效率与安全基线。

落地案例:某运维团队需每日在多台跳板机执行自动化部署,各环境数据库密码存于Bitwarden。工程师在tmux会话中完成一次性解锁后,脚本通过bw get password按服务名检索凭证注入环境变量,任务结束后自动锁定保险库。全程无需人工复制粘贴,且会话密钥不落入日志,实现流水线级别的安全取密。

能做什么

  • 安装并配置 Bitwarden CLI(bw)
  • 登录账户并解锁保险库
  • 搜索、读取密码、用户名、TOTP 等字段
  • 生成指定规则的随机密码
  • 本地 Vaultwarden 测试环境搭建

使用说明

1. 安装依赖

# macOS
brew install bitwarden-cli tmux mkcert
mkcert -install

2. 基础流程

# 检查状态
bw status

# 未登录时执行
bw login

# 创建专用 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"

3. 常用命令

bw lock                    # 锁定保险库
bw get password <name>     # 仅获取密码
bw get totp <name>         # 获取动态验证码
bw generate -ulns --length 32  # 生成32位密码

4. 本地测试(Vaultwarden)

cd /path/to/openclaw-bitwarden
mkdir -p certs && cd certs
mkcert localhost 127.0.0.1 ::1
cd ..
docker compose up -d
export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"
bw config server https://localhost:8443

输入与输出

见下方输入与输出表格。

项目内容
输入Bitwarden 账户凭证(邮箱/密码/API 密钥)、主密码、搜索关键词、条目 ID、目标服务器地址
输出BW_SESSION 会话密钥;保险库条目 JSON;密码/TOTP/用户名等字段;生成的随机密码;命令状态信息
适用人群需命令行管理密码的开发者、运维人员、自动化脚本编写者、本地 Vaultwarden 测试用户
不包含图形界面操作、浏览器扩展、企业级团队管理功能、跨设备同步冲突处理

 

风险提示

  • BW_SESSION 密钥不可写入日志或聊天记录
  • 所有认证命令必须在 tmux 会话内执行,否则会话无法保持
  • 优先使用 bw get password 而非解析完整 JSON,减少信息暴露
  • 操作完成后执行 bw lock 锁定保险库
  • 提示 “Vault is locked” 时需重新在 tmux 内执行解锁

来源信息

原始链接:https://github.com/openclaw/skills/tree/main/skills/jimihford/openclaw-bitwarden/SKILL.md
来源类型:GitHub 仓库

数据统计

相关导航

暂无评论

none
暂无评论...