整理常用的密码管理器.着重说说bitwarden.

一、引子

最早认识的密码管理器是 keepass,不过界面太老旧,当时设置的主密钥超级复杂,把自己都锁在外面。

目前最喜欢的,当然是 nodewarden(多端同步) + keepassxc(离线归档、内网环境)

两个系列,可以互相导入、导出。

KeePass 系列

  • keepass,界面丑,没有同步功能
  • keepassxc,电脑端,需要自己想办法多端同步
  • keepassdx,手机端,需要自己想办法多端同步

Bitwarden 系列

二、部署

bitwarden 官方版本吃资源,部署复杂.

vaultwarden 需要服务器,使用docker部署.

nodewarden 无需服务器,部署在 cloudflare worker.

2.1 vaultwarden

一般都会使用docker,默认是 sqlite3 数据库,也可以改用 mysqlpgsql 等.

难点是,防止服务器宕机、被黑,等情况数据可能丢失,需要想办法备份数据.

  • sqlite
1
2
3
4
5
6
7
8
9
10
11
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vw.domain.tld"
volumes:
- ./vw-data/:/data/
ports:
- 127.0.0.1:8000:80
  • pgsql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
version: "3.8"
services:
db:
image: postgres:15-alpine
restart: unless-stopped
environment:
POSTGRES_USER: username1
POSTGRES_PASSWORD: password113
POSTGRES_DB: vaultwarden
volumes:
- ./postgres-data:/var/lib/postgresql/data

vaultwarden:
image: vaultwarden/server:latest
depends_on:
- db
restart: unless-stopped
environment:
# 必要的环境变量
DATABASE_URL: "postgres://用户名:密码@db:5432/vaultwarden"
# 其他可选环境变量,例如域名、邮件、配置等
DOMAIN: "https://password.example.com"
# 可选:ADAWSRS_SQLITE = false(确保不使用 sqlite) — 具体可查 Vaultwarden 文档
ADMIN_TOKEN: xxxxxxxxxxxxxxxxx
EXPERIMENTAL_CLIENT_FEATURE_FLAGS: ssh-key-vault-item,ssh-agent
ports:
- "8091:80"
volumes:

2.2 nodewarden

  1. fork 原版仓库

  2. cloudflare worker 部署,初始化即可

  3. 绑定自己的域名

  4. 配置自动备份数据.

  5. 自动同步上游

1
.github/workflows/sync-upstream-by-me.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
name: Sync upstream

on:
schedule:
- cron: "0 19 * * *" # UTC 19:00 = 北京时间凌晨 3 点
workflow_dispatch: # 也支持手动点击触发

permissions:
contents: write

jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout your fork
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: main

- name: Add upstream and fetch
run: |
git remote add upstream https://github.com/shuaiplus/NodeWarden.git
git fetch upstream

- name: Configure git identity
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

- name: Merge upstream/main
run: |
git merge upstream/main --no-edit

- name: Push changes
run: |
git push origin main

三、日常使用

3.1 下载

  • 官网下载(推荐),支持 浏览器插件、PC端、安卓端.

  • github官方仓库下载

  • 其它渠道不推荐下载,毕竟是密码管理器

3.2 URI匹配规则

其实稍微对域名有所了解,一下子就明白了。

标准的一个URI,如下

1
2
3
https://sub.domain.com:4000/path
│ │ │ │ │
scheme 子域名 主域名 端口 路径
  • 基础域名,只看 domain.com
  • 主机,看 sub.domain.com:4000
  • 精确,看 https://sub.domain.com:4000/path

也可以自动匹配手机APP.

1
2
3
androidapp://com.tencent.mm
│ │
协议 包名

3.3 自动填充定位

有时候有太多的输入框,很容易填充错,此时可以添加 链接 字段.

  • 类型:链接型
  • 字段标签:元素的 idclass、等标签
  • 选择字段.

Keepass系列,可以手动选择窗口后,填写填充规则

1
{TOTP}{ENTER}

3.4 其它

  • 可以进入 /admin 进行整个服务的管理
    • 配置邮箱SMTP、title等
  • 关联阅读

3.4.1 吐槽

  1. bitwarden,每个设备登录后,都需要重新设置依次自动填充的匹配规则,因为我自部署的服务比较多,默认总是匹配到一大堆服务.
  2. keepassxc,单个条目无法匹配多个url。,现在可以附加url

​ 双击打开条目 → 进入 “Browser Integration”(浏览器集成) 标签页

四、效果

效果图