前言

现在的生活中的离不开各种app与网站,所以如何进行密码管理一直是我比较困扰的问题,放在备忘录中不方便,浏览器记住密码也不够安全。所以查阅相关资料后,决定利用Bitwarden自部署一个密码管理器。

安装docker

Bitwarden依赖于docker容器,ssh登录远程服务器进行安装。

安装docker:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

设置开机自启:

sudo systemctl enable docker  #开机自动启动docker

测试是否安装成功:

docker -v

安装Vaultwarden

Vaultwarden是Bitwarden的轻量替代服务端,相较于原版,Vaultwarden对服务器的要求低了许多。

一键拉取docker镜像:

docker run -d --name vaultwarden -v /root/vaultwarden/:/data/ -p port:80 -e ADMIN_TOKEN=<全局密码>  vaultwarden/server:latest

这时可登录后台网址domain:port/admin,验证是否成功运行。

配置nginx

由于Bitwarden仅支持https访问,所以需要使用nginx进行代理。

nginx.conf 中修改配置:

server {
listen 80;
server_name domain; # 访问的域名
rewrite ^(.*)$ https://domain:443$1 permanent; # 设置重定向
# 开启ssl
server {
listen 443 ssl;
ssl_certificate 证书地址 crt;
ssl_certificate_key 证书地址 key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
server_name domain; # 访问的域名
location / {
proxy_http_version 1.1;
proxy_set_header "Connection" "";

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

proxy_pass http://127.0.0.1:port; # 监听的本地端口
}
}

配置完成后重启nginx,之后即可使用https方式访问Bitwarden。

备份密码库

使用七牛云进行云端备份,只需要备份docker映射出的/data/vaultwarden 下的文件即可。

首先在七牛云中创建空间,然后在服务端使用七牛云的官方上传工具qshell进行上传。

下载qshell:

wget https://github.com/qiniu/qshell/releases/download/v2.9.1/qshell-v2.9.1-linux-amd64.tar.gz

解压:

tar -xf qshell-v2.9.1-linux-amd64.tar.gz

赋予权限:

chmod a+x qshell

创建配置文件vim upload.conf

{
"src_dir" : "/data/vaultwarden",
"bucket" : "七牛云的空间名称",
"file_list" : "",
"key_prefix" : "",
"up_host" : "",
"overwrite" : true,
"check_exists" : false,
"check_hash" : false,
"check_size" : false,
"rescan_local" : true,
"skip_file_prefixes" : "",
"skip_path_prefixes" : "",
"skip_fixed_strings" : "",
"skip_suffixes" : "",
"log_file" : "",
"log_level" : "info",
"log_rotate" : 1,
"log_stdout" : false,
"file_type" : 0
}

配置自动上传任务crontab -e,添加如下几行:

0 1 * * * rm -rf /root/.qshell > /dev/null
0 2 * * * /root/qshell account 七牛云里的AK 七牛云里的SK 七牛云的空间名称
0 3 * * * /root/qshell qupload /root/upload.conf > /dev/null

结语

Bitwarden支持全平台,浏览器上也有相应的插件,有自动记录密码和自动填充功能。

以后再也不用担心忘记密码了。