放弃付费1Password改用免费开源的bitwarden_rs自建密码管理系统-安装,使用和备份

1Password是去年搞活动入手的,之前一直在用KeePass,但是KeePass在浏览器和安卓手机上使用体验不是很好,用过了1Password之后发现密码管理服务做得真的是非常好了。不过有一个不好的地方就是1Password太贵了,一年至少需要35美元。

而且1Password还只能使用信用卡付款,像Paypal也不支持,这让很多想尝试1Password的朋友“望而却步”了。这篇文章主要分享一下在功能上和使用体验上媲美1Password的免费开源密码管理系统Bitwarden,自建Bitwarden,再也不用担心1Password删库“跑路”了。

放弃付费1Password改用免费开源的bitwarden_rs自建密码管理系统-安装,使用和备份

如果你是一名站长的话,其实很多的付费服务都是可以通过免费开源的程序来自我搭建的,例如:

  1. 自建CDN加速-Nginx反向绑定,缓存加速,自动更新缓存和获取真实IP
  2. 自建RSS阅读器Tiny Tiny RSS安装和配置自动更新,全文RSS,更换主题,手机RSS登录
  3. Aria2离线下载和在线播放-整合KodExplorer FileManager Nextcloud和 Plex系统

一、bitwarden_rs安装教程

网站:

  1. 官网:https://bitwarden.com/
  2. 第三方项目:https://github.com/dani-garcia/bitwarden_rs

Bitwarden官方推荐使用Docker镜像安装,但是Bitwarden 服务器使用 .Net 开发,如果使用 Docker 来部署,镜像体积过大;此外它使用 MSSQL 数据库,部署这个数据库对服务器配置要求比较高。而是bitwarden_rs是第三方开发的Bitwarden安装镜像。

bitwarden_rs自建密码管理系统

bitwarden_rs采用 Rust 实现了 Bitwarden服务器,这个实现更进一步降低了对机器配置的要求,并且 Docker 镜像体积很小,部署非常方便。此外,官方服务器中需要付费订阅的一些功能,在这个实现中是免费的。挖站否在512MB内存上机子完美运行bitwarden_rs。

1.1 安装前准备

一台VPS主机。bitwarden_rs使用Docker镜像来安装,需要使用一台VPS主机,配置不用太高,我自己用512MB内存也能跑起来,而且非常地流畅。购买VPS主机请参考:VPS主机排行榜单

Bitwarden准备一个VPS主机

一个域名。虽然有市面上有少的免费域名,但是建议还是使用付费的域名,密码这个东西比较重要,一旦确定要自建密码管理系统的话就要保证可以长期使用。参考:域名服务

Bitwarden注册域名

1.2 安装好Docker

你需要先安培安装 Docker CE (社区版)和Docker Compose,以下命令是基于Debian系统的演示,如果你是CentOS、Ubuntu,请参考官网:

安装 Docker CE (社区版):https://docs.docker.com/install/linux/docker-ce/ubuntu/

安装 Docker Compose:https://docs.docker.com/compose/install/#install-compose

Debian系统安装Docker CE 和Docker Compose如下:

#卸载
sudo apt-get remove docker docker-engine docker.io containerd runc
#SET UP THE REPOSITORY
sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
#检测是否安装成功
sudo apt-key fingerprint 0EBFCD88
#有以下输出就表示成功添加Docker’s official GPG key:
root@hostfbc9e58d73:~# sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]
#添加stable repository
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"
#开始安装
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
#验证 Docker Engine - Community是否安装正确
sudo docker run hello-world
#有以下输出就表示正确安装
root@hostfbc9e58d73:~# sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
Digest: sha256:b8ba256769a0ac28dd126d584e0a2011cd2877f3f76e093a7ae560f2a5301c00
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/
For more examples and ideas, visit:
 https://docs.docker.com/get-started/
 
 
#安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
#检测是否安装成功
docker-compose --version
#有输出即表示成功
docker-compose version 1.24.1, build 4667896b
#如果提示命令不存在,可以手动创建链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

1.3 安装好Nginx

bitwarden_rs官方可以选择使用Caddy来搭建Web服务,但是这里使用Nginx来搭建Web。主要原因有:一你的VPS可以用来建站,bitwarden与你的网站不会相冲突;二Nginx安装和备份的教程多,使用起来简单。推荐使用Oneinstack或者LNMP一键脚本,当然你也可以使用VPS主机面板

Bitwarden安装Nginx

1.4 bitwarden_rs安装

bitwarden_rs安装只需要一句代码就可以搞定:

docker pull bitwardenrs/server:latest

二、bitwarden_rs配置方法

挖站否用的启用命令如下(相关的解释如下):

docker run -d --name bitwarden \
	-e SIGNUPS_ALLOWED=true \
	-e WEBSOCKET_ENABLED=true \
	-e LOG_FILE=/data/bitwarden.log \
	-p 8880:80 \
	-p 3012:3012 \
	-v /bw-data/:/data/ \
	bitwardenrs/server:latest

2.1 启动bitwarden

启动bitwarden也很简单,我们只需要执行以下代码即可:

docker run -d --name bitwarden -v /bw-data/:/data/ -p 8880:80 bitwardenrs/server:latest
#或者直接使用80端口,不过这样的话你原来建有网站的话80端口就被占用了。
docker run -d --name bitwarden -v /bw-data/:/data/ -p 80:80 bitwardenrs/server:latest

2.2 设置Nginx

配置Nginx反向代理目的是为了可以使用域名来访问bitwarden,首先我们用Oneinstack安装好了Nginx并且配置好了域名、SSL等,现在打开Nginx域名配置文件,参考下方的内容直接替换即可:

server {
  listen 80;
  listen 443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/ssl/mima.wzfou.net.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/mima.wzfou.net.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name mima.wzfou.net;
  if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
  
   client_max_body_size 128M;
    location / {
        proxy_set_header  Host  'mima.wzfou.net';
        proxy_pass http://127.0.0.1:8880;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     }
    location /notifications/hub {
    proxy_pass http://127.0.0.1:3012;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    }

    location /notifications/hub/negotiate {
    proxy_pass http://127.0.0.1:8880;
    }
  
  
}

重启Nginx,刷新一下浏览器,你可以看到bitwarden已经可以正常访问了。

Bitwarden安装成功

2.3 禁止注册

为了保证bitwarden服务器的稳定,你可以禁止bitwarden注册新用户(这一项可以放在最后,否则你自己都无法注册了)。禁止新用户注册:

docker run -d --name bitwarden \
  -e SIGNUPS_ALLOWED=false \
  -v /bw-data/:/data/ \
  -p 80:80 \
  bitwardenrs/server:latest

2.4 关闭重启

启动和关闭:

stopped by docker stop bitwarden, a reboot or any other reason you can just start it up again by using

docker start bitwarden

2.5 升级

you just need to pull the latest image, stop and rm the current container and then start a new one the same way as before:

# Pull the latest version
docker pull bitwardenrs/server:latest

# Stop and remove the old container
docker stop bitwarden
docker rm bitwarden

# Start new container with the data mounted
docker run -d --name bitwarden -v /bw-data/:/data/ -p 80:80 bitwardenrs/server:latest
#或者是 
docker run -d --name bitwarden -v /bw-data/:/data/ -p 8880:80 bitwardenrs/server:latest

2.6 其它设置

启用日志记录:

-e LOG_FILE=/data/bitwarden.log 

启用WebSocket notifications:

 -e WEBSOCKET_ENABLED=true

三、Docker Compose配置

这一步可选。使用Docker Compose配置可以方便你管理Docker,不用也可以。 在bitwarden目录创建docker-compose.yml文件

vim docker-compose.yml

docker-compose.yml写入一下配置,参考官方wiki(https://github.com/dani-garcia/bitwarden_rs/wiki/Using-Docker-Compose)

version: "3"

services:
  bitwarden:
    image: bitwardenrs/server
    container_name: bitwardenrs
    restart: always
    ports:
        - "127.0.0.1:8880:80" #将8880端口映射到镜像80端口
        - "127.0.0.1:3012:3012"
    volumes:
      - ./bw-data:/data
    environment:
      WEBSOCKET_ENABLED: "true" #开启WebSocket
      SIGNUPS_ALLOWED: "true" #开启注册,自己注册后改成fale
      WEB_VAULT_ENABLED: "true" #web客户端

运行服务

docker-compose up -d #运行服务
docker-compose down #关闭服务
docker-compose restart #重启服务

四、bitwarden管理密码

4.1 网页版bitwarden

网页版的bitwarden管理密码也是非常地方便。以下是bitwarden的界面,有中文:(点击放大)

Bitwarden网页版

这是bitwarden的设置页面。

Bitwarden设置页面

可以自己设置两步验证,加强安全性。

Bitwarden同步验证

4.2 浏览器bitwarden

bitwarden提供了Chrome、Firefox等浏览器插件,直接安装就可以启用。

Bitwarden浏览器插件

在插件设置中填入你自己的bitwarden地址(否则是进入到官方的地址)

Bitwarden填入自己的服务器地址

bitwarden的Chrome浏览器插件界面如下:(点击放大)

Bitwarden Chrome界面

bitwarden浏览器设置页面。

Bitwarden浏览器设置

bitwarden浏览器插件支持手动添加登录。

Bitwarden手动添加记录

同时,bitwarden浏览器插件也会提示保存密码。如下图:

Bitwarden提示自动保存

bitwarden浏览器插件还有一个非常好用的功能就是自动加载密码。

Bitwarden浏览器个人设置

4.3 bitwarden电脑客户端

bitwarden有电脑客户端,操作类似于网页版。

Bitwarden电脑客户端

bitwarden用起来和1Password一样,如果你是1Password重度用户不会陌生的。

Bitwarden在电脑上使用

4.4 bitwarden手机客户端

bitwarden手机APP用户起来非常地方便,如下图:

Bitwarden手机APP

bitwarden支持指纹解锁,以及自动填充密码等。

Bitwarden指纹解锁

五、bitwarden导入1Password

bitwarden支持市面上绝大多数的密码管理器的数据导入,例如KeePass、Enpass、Avast Passwords、LastPass、Chrome、SafeInCloud、Zoho Vault等:

  1. https://help.bitwarden.com/article/import-data/

如果是导入1Password,先打开你的1Password电脑桌面客户端,选择导出。

Bitwarden导出密码

格式选择CSV,打开你的bitwarden网页版,点击工具下的数据导入。

Bitwarden打开网页版

选择1Password类型,点击导入即可。

Bitwarden导入密码

六、bitwarden备份与恢复

6.1 手动备份

bitwarden备份最关键的就是sqlite3数据库文件了,你可以直接进入到bw-data目录下,将sqlite3数据库保存下来。当然你也可以将bw-data目录下所有的包括附件文件夹、图标缓存文件夹、密钥等文件备份下来。

Bitwarden手动备份

6.2 自动备份

利用定时任务执行bitwarden备份,首先新建一个文件夹:mkdir /bw-data/db-backup,然后执行数据库备份任务。代码如下(关于定时任务说明参考:Linux Crontab命令定时任务基本语法与操作教程):

sqlite3 /bw-data/db.sqlite3 ".backup '/bw-data/db-backup/backup.sqlite3'"

6.3 恢复备份

bitwarden要恢复备份的话也很简单,直接将sqlite3数据库重写替换就可以了,其它的几个文件夹可以覆盖,也可以保留新的,不影响。如果你的数据库路径与原来的不一致,可以手动指定,代码示例:

docker run -d --name bitwarden \
  -e DATABASE_URL=/database/bitwarden.sqlite3 \
  -v /bw-data/:/data/ \
  -v /bw-database/:/database/ \
  -p 80:80 \
  bitwardenrs/server:latest

七、总结

bitwarden作为一款开源的密码管理器,其本身支持平台之多,功能之全面,是替代1Password的理想品。bitwarden安装简单,采用Docker镜像,特别适合已经有了VPS建站的朋友,在不影响建站的情况下正常使用bitwarden。

bitwarden可以支持多用户注册使用,如果想要让bitwarden发送邮件的话,可以使用SMTP发邮件,参考代码如下:

docker run -d --name bitwarden \
  -e SMTP_HOST=<smtp.domain.tld> \
  -e SMTP_FROM=<bitwarden@domain.tld> \
  -e SMTP_PORT=587 \
  -e SMTP_SSL=true \
  -e SMTP_USERNAME=<username> \
  -e SMTP_PASSWORD=<password> \
  -v /bw-data/:/data/ \
  -p 80:80 \
  bitwardenrs/server:latest

文章出自:挖站否 https://wzfou.com/bitwarden-rs/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。部分内容参考自:bitwarden_rs Wiki


分享到:
Avatar for Qi
关于站长(Qi),2008年开始混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,但愿将自己经验与心得分享出来与大家共勉。
已有 43 条评论
  1. qi,你好,请问文章可以转载吗?我记性太差了,步骤太多,转载到自己博客以后更方便看,万一那天你跑路了,哈哈

    6月8日 16:11 回复
  2. Avatar for yk yk

    前面设置时事用的 -p 8880:80 \
    后面的参数都用 -p 80:80 \ ,这个没问题吗?
    或者后面的那些设置有必要带 -p 的参数吗?

    5月2日 08:29 回复
  3. Avatar for 似毛非毛 似毛非毛

    这个bitwarden-rs是真心好用,再也不愁记一大堆密码了。。另外我还折腾了下fail2ban登录防爆破和自动备份
    https://mashaji.cc/post/bitwarden_rs_docker/

    4月30日 11:04 回复
  4. 这个我也要折腾一下

    4月22日 21:54 回复
  5. Avatar for KK KK

    自建的是可以直接用全功能还是只能用免费用户功能?

    4月16日 21:33 回复
  6. 干货文章 [good],对于新手,我担忧的是,个人精力有限, vps安全和维护精力不多,1Password 虽说贵了点,但从安全和易容方面比自建要好的多,总之,各有优缺点 [挤眼]

    4月8日 19:011 回复
    • Avatar for Qi Qi

      是的,VPS+域名,一年下来也得几十美元。

      4月9日 11:44 回复
    • 很有道理[偷笑]

      4月13日 14:33 回复
  7. Avatar for Star Star

    Qi姐,这是折腾啥呢?chrome的密码管理相当好用啊?火狐官方也不错啊,还有手机端。[神马]

    4月8日 14:32 回复
    • Avatar for Qi Qi

      火狐还有客户端?

      4月8日 17:57 回复
  8. Avatar for abc abc

    感觉很不错的程序[good]

    4月6日 19:25 回复
  9. Avatar for luxy25 luxy25

    Bitwarden 对国内好多表单都不提示保存,这个比较郁闷

    4月3日 09:24 回复
    • Avatar for Qi Qi

      这可能就是免费与付费的区别,付费的这一块做得不错。

      4月5日 19:41 回复
  10. 官方的和这个第三方的,差的订阅是什么?是高级的那个所有的吗,官方有相应的说明可以参考下吗?

    3月31日 14:13 回复
  11. Avatar for 123 123

    自建能访问web,但是注册账号点了注册一直没反应

    3月29日 22:28 回复
    • Avatar for Qi Qi

      权限应该没有设置好。

      3月30日 11:18 回复
      • Avatar for 123 123

        只有chrome有这个问题,firefox可以正常创建登录。Chrome和新edge都无法登录和创建账号

        3月30日 15:19 回复
        • Avatar for Qi Qi

          看来是兼容的问题了。

          3月31日 12:23 回复
  12. Avatar for daiwenqing daiwenqing

    谢谢大佬的文章,很详细!辛苦了!

    3月29日 09:20 回复
  13. Avatar for AS AS

    自建失败,选择被托管 vault.bitwarden.com

    3月28日 17:24 回复
  14. 自从Firefox升级到57以后我就换这个了,lastpass自动填充比bitwarden差多了,而且bitwarden支持记录二次验证,贼方便(记录二次验证主要是某些网站不用二次验证老是提示我改密码)

    3月26日 17:32 回复
    • Avatar for Qi Qi

      是的,非常好。

      3月27日 16:38 回复
  15. 其实我觉得chrome密码管理好像也不错[嘻嘻]

    3月26日 12:04 回复
  16. Avatar for 寒喵 寒喵

    看着还行,要是有手机端就好了

    3月25日 18:32 回复
    • Avatar for Qi Qi

      手机端有的。

      3月25日 18:32 回复
      • Avatar for 寒喵 寒喵

        上个手机端截图呗[嘻嘻]

        3月25日 18:34 回复
        • Avatar for Qi Qi

          有的,在文章里。

          3月26日 12:35 回复
      • Avatar for 寒喵 寒喵

        官网看了下感觉还行

        3月25日 18:35 回复
  17. Avatar for Nie Nie

    有点复杂。

    3月25日 15:06 回复
  18. 不错的程序,但是主要怕要是自己的服务器被攻破了就炸了[可怜]
    1password合租的话还是挺便宜的

    3月25日 14:261 回复
    • Avatar for Qi Qi

      攻破了也没有关系,都是加密的。

      3月25日 15:15 回复
  19. 目前拼车1password。40+/y

    3月25日 11:31 回复
    • Avatar for Qi Qi

      我自己付费用了一年,太贵了。

      3月25日 15:03 回复
      • Avatar for Rupo Rupo

        哈哈哈 的确贵,拼车是不错的选择~
        有需要的话可以去daixiahu.co,或者v2ex找找拼车的人

        3月27日 11:46 回复
        • Avatar for Qi Qi

          但是上车了有依赖了,现在又不能放弃了。

          3月27日 13:29 回复
  20. 不错[good]

    3月25日 08:41 回复

Login

Welcome! Login in to your account

Remember me Lost your password?

Don't have account. Register

Lost Password

Register