Twhidden Bitwarden

🔐 安全密码管理自动化利器

Bitwarden/Vaultwarden CLI 封装工具,自动会话管理,支持密码存储、检索、生成及安全管理,兼容官方与自建服务器。

收藏
3.7k
安装
1.4k
版本
1.0.2
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

本 Skill 是 Bitwarden CLI (bw) 的自动化封装层,提供完整的密码生命周期管理功能。用户通过 bw.sh 脚本调用,支持官方 Bitwarden 云服务及自建 Vaultwarden 实例。核心能力包括:

  • 身份认证login 命令自动从环境变量或凭证文件读取 BW_SERVER/BW_EMAIL/BW_MASTER_PASSWORD 完成解锁
  • 密码检索get-password/get-username 快速提取特定条目,支持名称模糊匹配
  • 密码生成generate [length] 创建高强度随机密码,默认可配置长度
  • 条目管理create/delete/list 实现凭据的增删改查
  • 会话管理:首次认证后会话令牌缓存至 /tmp/.bw_session,后续命令自动复用

典型工作流

1. 配置环境变量或 secrets/bitwarden.env(建议 chmod 600
2. 执行 bw.sh login 完成解锁

3. 使用 get-password "GitHub" 等命令按需检索

4. 结束会话后 bw.sh lock 清除本地令牌

显著优点

1. 双端兼容:原生支持 Bitwarden 官方云与 Vaultwarden 自建部署,满足不同隐私需求
2. 零交互设计:环境变量预配置 + 会话缓存,适合自动化脚本和 CI/CD 场景

3. 细粒度输出:区分 get(完整 JSON)、get-password/get-username(单字段),避免敏感信息过度暴露

4. 安全默认值:强制 HTTPS 通信、令牌存储于 /tmp(重启自动清除)、.gitignore 预配置排除敏感文件

5. 灵活部署:依赖仅 bw CLI + python3,无额外重量级运行时

潜在缺点与局限性

1. 会话持久化风险:令牌存放于 /tmp/.bw_session,虽重启清除,但运行期间若系统被入侵存在读取风险
2. 主密码暴露:必须将 BW_MASTER_PASSWORD 以明文形式存入环境变量或文件,依赖系统级访问控制(文件权限)

3. 单点故障:Skill 本身不实现加密逻辑,完全依赖底层 bw CLI 的正确性与 Bitwarden 服务器的可用性

4. 无多因素认证(MFA)支持:文档未提及 TOTP/硬件密钥等二次验证流程,可能受限特定安全策略

5. 错误处理透明度低:若 bw CLI 返回非结构化错误,脚本层可能仅透传原始输出

适合人群

  • DevOps/SRE 工程师:需要在自动化流水线中安全注入数据库、API 密钥等凭据
  • 隐私优先用户:希望使用 Vaultwarden 自建部署替代商业密码云服务
  • 多服务器运维者:通过统一 CLI 管理分散在不同环境的登录信息
  • 安全意识较高的个人用户:接受命令行交互、理解环境变量配置的技术群体

常规风险

| 风险类别 | 说明 | 缓解建议 |
|---------|------|---------|
| 凭证泄露 | 主密码以明文存储于文件系统 | 严格设置 `chmod 600`,使用专用凭据管理工具(如 HashiCorp Vault)中转 |
| 会话劫持 | `/tmp/.bw_session` 被其他进程读取 | 缩短会话有效期,及时执行 `lock`,考虑 `tmpfs` 加密挂载 |
| 中间人攻击 | 自建 Vaultwarden 证书配置不当 | 强制 HTTPS,验证证书链,使用内部 CA 或 Let's Encrypt |
| 供应链风险 | `bw` CLI 或本 Skill 脚本被篡改 | 校验 npm 包签名,审计 `bw.sh` 源码,锁定版本 |
| 日志残留 | 密码意外写入 shell 历史或系统日志 | 配置 `HISTCONTROL=ignorespace`,审查日志策略,避免 `set -x` 调试 |

总体评估

该 Skill 在功能完整性、自动化友好度与基础安全措施间取得平衡,适合技术用户构建可信密码管理工作流。核心安全假设依赖于:用户正确配置文件权限、Bitwarden/Vaultwarden 服务端可信、以及运行环境的隔离性。对于极高安全场景,建议叠加硬件安全模块(HSM)或专用机密计算环境。

Twhidden Bitwarden 内容

手动下载zip · 6.7 kB
bw.shtext/x-shellscript
请选择文件