搭建自己的私人密码库!Bitwarden 部署安装教程 (免费 1Password 替代品)

发布时间 2023-08-21 17:33:00作者: ShyuRongLi

常生活中我们几乎每个人都会拥有大量网站帐号,时间久远了密码很容易忘记。因此,像 1Password 等密码管理 + 同步 + 一键登录的工具成为了很多人的首选。

然而 1Password 毕竟要付费,也有人会担心这类工具有隐私泄露的风险。其实,如果你有一台自己的 VPS 服务器,那么就能用开源的 Bitwarden 部署搭建一个私人专属的密码管理服务来代替 1Password!这样不仅免费,重要的是,所有的数据均保存在自己服务器上,更加放心……

用 Bitwarden 部署免费安全的私人密码库 / 密码管理器

「Bitwarden 免费密码管理器」开源免费,跨平台支持 Windows、Mac、Linux、iOS、Android 平台,同时也提供了 Chrome、Edge、Firefox、Safari 等浏览器扩展可实现快速填充帐号密码一键登录网站,是一款非常不错的 1Password 免费替代品。

image

而最重要的是,Bitwarden 支持本地托管,可以搭建私人专属密码库,部署到自己的服务器、 NAS、树莓派等设备上去,所有的密码数据、通讯都不会经过第三方,更能让人放心。特别是如果你本来就有用 VPS 搭建过「私有的网盘、博客」,那么加一个密码管理器也是十分实用的。

搭建 Bitwarden 前的准备

服务器

准备一台稳定靠谱的服务器,推荐「腾讯云、阿里云」等国内大厂!趁 618、双 11 秒杀或各种活动优惠入手的话是非常便宜的,大家可以根据实际需求选择带宽和配置。

单做密码管理的话要求很低,但如果你希望能多用途利用,那么优先选择内存和带宽高点的机型。网络好的话也可以选择 Vultr、般佤工、Linode、DigitalOcean 等国外几大口碑主机商。

域名

另外你还需要注册一个域名用于访问你的服务器。然后进入你的域名 DNS 解析后台,新增一条 A 记录指向你的服务器 IP (这一步最好先做,因为部分 DNS 生效会比较久),这里假设我使用域名为 bitwarden.domain.com

简单搭建部署 Bitwarden 教程

这篇教程以「Debian / Ubuntu」为例子,CentOS 等系统也能作为参考 (无非主要就是 apt-get 改成 yum 了)。我们主要使用到 “Docker” 进行部署,它能帮你一键安装配置并虚拟化运行 Bitwarden 需要用到的全部组件,省去你一个个手动安装和配置运行环境的各种麻烦。

安装 Docker 和 Docker Compose

如果你的服务器上已经安装了 Docker 和 Docker Compose,这一步就可以跳过了。Docker 要求 CentOS 系统的内核版本高于 3.10,可以运行 uname -r 查看版本。

如果没有安装,请转自 Docker/Docker Compose 安装 进行。

安装 Bitwarden 服务端

确认服务器已成功安装好 Docker 和 Docker Compose 之后,我们就可以来安装 Bitwarden 了。

Bitwarden 提供了一个 Shell 脚本,可以轻松地在 Linux 和 macOS(Bash)或 Windows(PowerShell)上安装。完成以下步骤以使用 shell 脚本安装 Bitwarden:

# 1、下载 Bitwarden 的安装脚本
curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh && chmod 700 bitwarden.sh

# 2、执行安装程序
./bitwarden.sh install
# 由于 docker 镜像的体积比较大,国内网络可能遇到中途卡住不动的情况,可按下 Ctrl+C 终止再重试,多次不行的话,可以参考网上的其他教程为 Docker 配置代里。

接着,安装脚本会一步步提示你输入,下面是部分重点选项:

  • Enter the domain name for your Bitwarden instance
    输入你要给 Bitwarden 分配的域名,这里例子为 bitwarden.domain.com

  • Do you want to use Let’s Encrypt to generate a free SSL certificate? (y/n)
    是否使用 Let's Encrypt 自动生成免费的 SSL 证书,一般选 y (你有自己的证书也可以选 n,后面需要配置证书的路径)

  • Enter the database name for your Bitwarden instance
    输入用于 Bitwarden 的数据库名称

  • Enter your installation id / Enter your installation key
    你需要访问 https://bitwarden.com/host 获取一组安装 ID 和安装密钥 Key (官网被 xx 无法访问的话,只能各显神通了)

修改配置文件 (端口号、SSL 证书等)

  • 如果你需要使用自己的 SSL 证书、修改默认的端口号等需求,可以编辑配置文件
    ./bwdata/config.yml。比如你的服务器本身就有网站占用了 80、443 端口,那么可以修改配置里的 http_port 和 https_port 端口号来避免冲突。比如我改成 8080 和 8888,这样日后我访问时的域名就是 https://bitwarden.domain.com:8888 了。

  • 要注意的是,腾讯云、阿里云等机器默认的「安全组规则」会阻止非常用端口的访问,如使用非 80/443 端口,需要登录后台修改安全组规则允许你设置的端口才行。

  • 另外,如果你使用「宝塔面板」,或者懂得修改 Nginx 的配置,也可以对你的 bitwarden 服务进行“反代”,有建站经验的朋友,可以查查相关的资料,搞定应该不难。

  • 修改完后,必须执行一下 ./bitwarden.sh rebuild 命令才能让新配置生效。

修改环境配置文件(可选)

安装程序 bitwarden.sh 未配置 Bitwarden 的某些功能。通过编辑位于 ./bwdata/env/global.override.env 的环境文件来配置这些设置。

  • 在环境配置文件 ./bwdata/env/global.override.env 里有诸如 SMTP、启用Yubico、启用系统管理员门户、是否禁止用户注册等设置。

  • 其中,如果你的 Bitwarden 打算是私人使用,建议在注册完自己账号之后,改成 “禁止用户注册”,对应的项为:globalSettings__disableUserRegistration=false

  • 修改此文件后,需要重启 Bitwarden 容器才能生效,重启命令为:./bitwarden.sh restart

启动 Bitwarden 服务

./bitwarden.sh start

首次启动 Bitwarden 可能时间会比较长,因为安装脚本要从 Docker Hub 下载全部需要的组件的镜像,比如 MySQL 体积就比较大,耐心等待完成即可。之后,可以使用 docker ps 命令来查看是否有 Bitwarden 的进程。

PowerShell 用户将以前缀-(开关)运行命令。例如.\bitwarden.ps1 -start。

docker ps

docker ps

image

正常的话就能通过域名访问了,例如 https://bitwarden.domain.com:8888 。这里就是你自己的 Bitwarden 私人密码库网页版了,之后就能去下载各种客户端使用了,登录时填入自己的 Bitwarden 服务器地址即可。

image

尽管目前无论从颜值还是使用体验上都仍比不上付费的 1Password,但 Bitwarden 免费开源、支持私有化部署也有着相当的优势。上手习惯之后,你会发现 Bitwarden 还是挺好用的,毕竟它也拥有全平台客户端支持,基本能满足一般人对密码管理器的所有期待。而且它也支持无缝导入 1Password 的数据,确实算是相当不错的 1Password 免费替代方案了。

后续维护命令:

bitwarden.sh 脚本可以使用的命令

命令 描述
install 启动安装程序
start 启动所有容器
restart 重新启动所有容器(与启动相同)
stop 停止所有容器
update 更新 Bitwarden 版本
updatedb 更新/初始化数据库
updateself 更新 bitwarden.sh 文件本身
updateconf 更新所有容器,而无需重新启动正在运行的实例
renewcert 续订证书
rebuild 重建 config.yml 的配置
help 列出所有命令

备份 Bitwarden 密码数据 (可选)

Bitwarden 的全部数据都保存在 ./bwdata 目录下,建议你定期备份这个目录的全部内容到其他地方以防意外。其中的内容包括:

  • ./bwdata/env - 实例的环境变量,包括数据库和证书密码

  • ./bwdata/core/attachments - 实例的密码库项目的附件

  • ./bwdata/mssql/data - 实例的数据库数据

每天 Bitwarden 也会自动对 MySQL 容器 中的数据库进行备份。备份文件默认保存在./bwdata/mssql/backups 目录中,保留 30 天。

总结

尽管这篇文章看起来很长,但实际上如果你熟悉 Linux 操作,搭建部署本地托管的 Bitwarden 还是挺简单的。而除了服务器,你还可以部署在家里的树莓派或 NAS 上 (可能需要内网穿透)。

对于喜欢学习、喜欢折腾、有自己服务器的人,都建议试试用 Bitwarden 自建部署专属个人的密码库,这不仅完全免费,而且数据全部拽在自己手里,更有安全感!加上 Bitwarden 本身各平台客户端和浏览器插件都非常齐全,使用体验佳,能满足绝大多数人对密码管理的要求了。