把密码交给1Password我实在不放心,自己搭了Vaultwarden之后踏实多了

不放心把密码交给第三方?Docker一条命令搭自己的Vaultwarden,省心还不用月费
发布于
1

我之前一直用第三方密码管理器,从LastPass换到1Password,每次都告诉自己”大厂加密安全没问题”。直到有一天朋友发了我一条新闻:某密码管理器被收购后改了隐私政策,用户数据被用于AI训练。

不是什么安全漏洞,就是商业层面的一个决策,你的数据就不再是你的了。这件事让我下定决心把密码管理器迁到自己服务器上。选了Vaultwarden——Bitwarden的Rust重写版,一条Docker命令部署,内存占用才几十MB,所有Bitwarden客户端直接兼容。

Vaultwarden是什么

Bitwarden官方的自部署版需要.NET+MSSQL数据库,最低2GB内存,小服务器根本跑不动。Vaultwarden(原名bitwarden_rs)是社区用Rust重写的兼容版——一个二进制文件、SQLite数据库、内存占用50MB以内。功能完全兼容Bitwarden客户端。

支持:密码生成、自动填充、TOTP两步验证、密码共享(组织功能)、文件附件、紧急访问。所有主流浏览器和手机的Bitwarden客户端都能连接。

Docker部署

最简单的部署方式,一个docker-compose.yml搞定:

version: "3"
services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    environment:
      SIGNUPS_ALLOWED: "true"
      DOMAIN: "https://你的域名"
    ports:
      - "8088:80"
    volumes:
      - ./vw-data:/data
    restart: unless-stopped

docker compose up -d启动。然后配Nginx反向代理或直接用宝塔面板反代8088端口到80/443,加SSL证书。

我部署在雨云(rain.jiyueip.com,优惠码admin01)香港节点上,不用备案,配了Let’s Encrypt自动续期证书。

创建账号和关闭注册

浏览器打开https://你的域名,点击创建账号,填邮箱和主密码。主密码是你整个密码库的唯一钥匙,必须强且不能忘——忘了谁也找不回来。

创建完账号之后立刻改配置把SIGNUPS_ALLOWED改成false重启容器,关闭公开注册。不然别人扫到你的域名也能注册账号。

管理员面板用ADMIN_TOKEN访问。在docker-compose.yml里加环境变量ADMIN_TOKEN,设一个随机长字符串,然后访问https://你的域名/admin输入token登录管理面板。

客户端连接

手机和浏览器装Bitwarden官方客户端。在客户端设置里找到”自托管”选项,服务器地址填你的域名(https://你的域名)。输账号密码登录,之后就跟你用1Password的体验一样了。

iOS设置里还要去密码选项里把Bitwarden设为自动填充来源,这样登录App的时候能一键填密码。

备份不能忘

所有密码都在这一个数据库里,弄丢了就是灾难。Vaultwarden的数据在vw-data文件夹里的db.sqlite3文件。写个简单的备份脚本每天定时打包:

#!/bin/bash
BACKUP_DIR="./backups"
mkdir -p $BACKUP_DIR
cp ./vw-data/db.sqlite3 $BACKUP_DIR/db_$(date +%Y%m%d).sqlite3
find $BACKUP_DIR -mtime +30 -delete

加到crontab里每天凌晨自动执行。备份文件最好再同步一份到云存储或者其他服务器上。

自己部署密码管理器这件事,说实话不如直接用1Password省事。但省事是有代价的——你的密码在别人服务器上。你喜欢省事就用云服务,你喜欢掌控就用Vaultwarden。我选了后者,服务器跑在雨云(rain.jiyueip.com,优惠码admin01)上,数据库每天自动备份,心里踏实。

常见问题(FAQ)

Vaultwarden和1Password比哪个好?
看需求。1Password省事,开箱即用但按月付费、数据在别人服务器上。Vaultwarden需要自己搭服务器部署,但免费、数据完全自己掌控、内存只占50MB。我用了雨云(rain.jiyueip.com,优惠码admin01)最低配跑Vaultwarden,比云密码管理器便宜多了。
Vaultwarden忘记主密码怎么办?
没办法找回。主密码是端到端加密的密钥,服务端不存储。这是安全设计——但这也意味着必须记住或安全保存。设置的时候建议手写下来放在物理安全的地方。
Vaultwarden怎么备份数据?
数据在db.sqlite3文件里。写定时脚本每天cp一份加日期后缀,保留最近30天。再加offsite备份(同步到云存储或其他服务器)。Vaultwarden也支持.json加密导出,定期手动导出一份更保险。
Vaultwarden客户端怎么连接?
所有Bitwarden官方客户端(iOS/Android/浏览器插件/桌面)都兼容。在客户端设置里找"自托管"选项,服务器地址填你的域名(https://你的域名),输账号密码登录就行。体验和1Password几乎一样。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 / 600
0 讨论
热门最新
总结
暂无总结

暂无数据