在数字时代,密码管理成为了我们日常生活中不可或缺的一部分。为了安全地存储和访问各种账户密码,先后尝试了不同的密码管理工具,一开始选择的是keepass,但是keepass是真的丑强大,并且考虑到keepass没有网页端,偶尔在办公电脑上填充密码的时候需要手敲密码,太麻烦了所以我一度放弃,转而选择了bitwarden,而bitwarden还有一个第三方的 Valutwarden,功能等同于bitwarden的高级付费版,并且占用资源较少,因此用了很久。
Valutwarden介绍
Vaultwarden(原名Bitwarden_RS)作为一个开源、轻量级的Bitwarden服务器实现,为用户提供了一个高效且安全的方式来托管自己的密码管理服务。
相较于官方版本,Vaultwarden在硬件需求方面表现出色,即使是在仅有512MB内存的VPS上也能顺利运行。这意味着即使是资源有限的环境也能够轻松承载这一服务。同时,Vaultwarden支持包括Windows、macOS、Linux、iOS以及Android在内的几乎所有操作系统和设备,并提供了多种双重验证方式和自动填充功能,极大地提升了用户体验。
借助Docker容器化技术,Vaultwarden实现了极其简便的部署过程,即便是非技术人员也能快速搭建自己的密码管理服务。
valuewarden部署
这里选择使用docker方式来进行部署。
首先,确保服务器已经安装了Docker和Docker Compose。如果尚未安装,可以通过以下命令进行安装(以Ubuntu为例):
sudo apt-get update
sudo apt-get install -y docker.io docker-compose
创建一个用于存放Vaultwarden数据的目录,例如/opt/vaultwarden
,并进入该目录:
sudo mkdir -p /opt/vaultwarden
cd /opt/vaultwarden
在此目录中创建一个名为docker-compose.yml
的文件,用以定义Vaultwarden的服务。可以使用如下内容:
version: '3.7' # 指定 Docker Compose 文件的版本。此版本支持更多的特性,如更丰富的服务配置选项。
services: # 定义了将在Docker容器中运行的服务列表。
vaultwarden: # 定义了一个名为 'vaultwarden' 的服务。
image: vaultwarden/server:latest # 指定要使用的Docker镜像和标签。这里使用的是官方Vaultwarden镜像的最新版本。
container_name: vaultwarden # 为容器指定一个名称,方便管理。
environment: # 设置环境变量,这些变量会被传递给容器内的应用。
- WEBSOCKET_ENABLED=true # 启用WebSocket支持,用于实时通信。
- SIGNUPS_ALLOWED=false # 禁止新用户注册,如果希望开放注册则设置为true。
# ... 其他可能需要的环境变量 ...
ports: # 映射容器端口到主机端口,使得外部能够访问容器内的服务。
- "80:80" # 将主机的80端口映射到容器的80端口,用于HTTP流量。
- "3012:3012" # 将主机的3012端口映射到容器的3012端口,用于WebSocket通信。
volumes: # 定义数据卷,用于持久化容器内的数据或与主机共享文件。
- ./data:/data # 将主机当前目录下的 'data' 文件夹挂载到容器的 '/data' 目录,用于存储数据库和其他持久化数据。
restart: unless-stopped # 设置重启策略。这里表示除非手动停止,否则容器会自动重启。
通过执行以下命令启动Vaultwarden服务:
sudo docker-compose up -d
Vaultwarden强制要求SSL证书,否则的话无法部署,如果用的宝塔面板,可以添加一个网站,并将域名反代到Vaultwarden端口,再进行部署SSL证书;
我是用的Cyberpanel面板,设置反向代理比较复杂,这也是我后面选择放弃Vaultwarden的原因之一,具体可以参照来操作:
一方面设置反向代理比较复杂,另一方面也需要有一个支持SSL的域名,现在免费的SSL有效期都只有3个月,想要自动续签,有一定的门槛,尤其是在使用Cyberpanel面板情况下,没有一定的技术基础,是很难实现的。因此为了一劳永逸,还是选择了更换密码服务工具,转而继续使用keepass。
Keepass介绍
无需维护服务端,没有复杂的Docker命令或数据库迁移。一个.kdbx
文件+主密码,即是全部。数据存储在本地或自行同步(如Syncthing),既保留自主权,又规避服务端风险。而个人使用的话,通过webdav同步也是一个非常好的选项。
此外,诞生近20年,Keepass历经多次审计,核心代码极其稳定。跨平台客户端(如KeepassXC)、移动端App(如Keepass2Android)的成熟生态,覆盖全场景需求。
并且keepass通过插件可以实现自由扩展,两步验证、浏览器自动填充、密码强度分析……通过插件即可实现,无需绑定特定服务商。
尽管KeePass最初是为Windows设计的,但现在它也支持其他操作系统,包括Linux、macOS以及移动平台如Android和iOS。用户可以通过多种客户端访问他们的密码库,例如官方客户端、KeeWeb、KeePassXC等
Windows
安装与设置:
- 下载并安装官方的KeePass 2.x版本。
- 创建一个新的KeePass数据库文件(.kdbx),选择强主密码保护这个数据库,并可选地添加密钥文件或Windows账户作为额外的安全层。
- 安装必要的插件来增强功能,例如KeePassHttp用于浏览器集成,AutoType用于自动填写表单等。
同步方法:
- 使用云服务如Dropbox、Google Drive或OneDrive来同步数据库文件,确保不同设备间的数据一致。
- 如果在同一网络内,也可以将数据库文件放置于共享文件夹中进行本地同步。
Linux
安装与设置:
- 对于Linux系统,可以选择KeePassXC或KeeWeb作为客户端。
- KeePassXC是一个跨平台的KeePass 2.x客户端,支持几乎所有的核心功能,并且可以很好地集成到GNOME或KDE桌面环境中。
- 安装命令示例:
sudo apt-get install keepassxc
- 启动KeePassXC后,打开现有的KeePass数据库文件或创建新的数据库。
同步方法:
- 可以通过上述提到的云服务实现跨设备同步。
- 对于高级用户,还可以配置SSH/SFTP或者WebDAV服务来进行同步。
Android
安装与设置:
- 在Android上,KeePass2Android是推荐的选择之一,可以从Google Play商店下载。
- 打开应用后,你可以选择从本地存储、云服务(如Dropbox、Google Drive)或其他WebDAV服务器加载你的KeeSS数据库文件。
- 设置KeePass2Android键盘以便于自动填充用户名和密码到其他应用程序中。
同步方法:
- 利用坚果云或其他支持WebDAV的服务,可以通过KeePass2Android直接连接到云端,读取和写入数据库文件。
- 也可以手动复制数据库文件到手机并通过KeePass2Android打开。
结语
这次“回归”让我深刻体会到:技术选择需匹配个人真实需求,而非陷入理想主义的执念。自托管适合热衷运维的极客,而Keepass则是“懒人安全主义”的最优解。无论选择哪条路,请铭记:
- 多重备份(3-2-1原则)永远比工具本身更重要。
- 定期导出明文备份(加密存储),防范极端情况。
- 真正的“掌控权”,在于对风险清醒的认知。
或许未来某天,我仍会尝试新的工具,但此刻,Keepass带来的这份“无感的安全”,正是生活最需要的答案。