WebDAV+keePass实现云同步密码管理
keePass介绍 :KeePass 是一款管理密码的开源的免费软件,KeePass 将密码存储为一个数据库,而这个数据库由一个主密码或密码文件锁住,也就是说我们只需要记住一个主密码,或使用一个密码文件,就可以解开这个数据库,就可以获得其他的密码内容。不用担心安全,这个数据库采用当今非常安全的密码算法AES 和 Twofish。
WebDAV介绍:WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
由于keePass不支持云同步,不方便将各个设备的密码文件整合,因此可以搭建一个WebDAV服务器,将秘钥文件放在其中,在各个终端都访问同一个文件,来达到同步的目的。
环境:CentOS7 + Apache2.4
-
如果服务器没有则先安装apache ,
yum install httpd
,Apache2.4是默认开启WebDAV的, 可以查看/etc/httpd/conf.modules.d
目录下的dav.conf
配置文件如果没有此文件,可以把以下代码加到自定义的配置文件中以保证开启WebDAV服务LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule dav_lock_module modules/mod_dav_lock.so
-
在默认配置文件为WebDAV服务打开一个监听端口,以6666为例,并在conf.d文件夹中为WebDAV服务单独创建一个配置文件。
<VirtualHost *:6666> ServerAdmin name ServerName name.cn # 存放文件的位置 DocumentRoot /data/webdav # 日志文件的位置 ErrorLog /var/log/httpd/error.log CustomLog /var/log/httpd/access.log combined # 访问路径 Alias /dav /data/webdav <Directory "/data/webdav"> # 访问权限 Options Indexes MultiViews AllowOverride None Order allow,deny allow from all </Directory> <Location /> # 验证密码 DAV On AuthType Basic AuthName "WebDAV-Server" # 这是登录验证的密码文件 AuthUserFile "/etc/httpd/users.pwd" Require valid-user </Location> </VirtualHost>
我们需要创建一个用来验证登录的密码文件,存放在配置文件所规定的目录中 /etc/httpd/users.pwd
。 创建密码需要用到一个htpasswd
工具,这个工具是Apache内置的,不需要单独安装。
htpasswd -c /etc/httpd/users.pwd username
之后需要自己设定一个密码输入两次,便会在该位置创建WebDAV密码文件。
-
在浏览器中测试,如果出现下图情况说明开启成功。
keePass使用
- Windows: keePassXC客户端
- OS X: keePassXC For Mac客户端
- Android:keepass2Android
- IOS: MinikeePass
另外还有很多开源软件都可以使用: GitHub
在Windows设备上访问WebDAV服务器
这是Windows下客户端的主界面,我们可以新创建一个密码库或者打开一个备份的密码库,这里我们打开已有密码文件。-
在资源管理器中,右击此电脑,选择映射网络驱动器。
-
填写服务器地址,端口号和密码。
-
把映射驱动器磁盘里的密码文件拖到软件里。输入创建密码库时的主密码就可以打开。
在OSX设备上访问
keePassXC For Mac- 打开Finder文件管理器,按
command + k
键,连接服务器。 -
同样将密码文件拖到APP中。
在Android设备上访问
keepass2android-
选择打开文件,找到HTTP(WebDav)选项(我的服务器没有https)访问WebDAV服务器上的密码文件。
-
输入服务器地址,webdav服务账号密码。就可以打开数据库了。
这样三台设备就可以访问一个密码文件,实现密码的同步,就不用手动复制各个设备了,不过还是建议多备份几次,防止密码丢失。
Chrome自动填写密码扩展程序
KeePassXC-Browser
谷歌应用商店自行下载,可能需要梯子。
首先确认客户端APP已经打开,之后点击扩展程序图标,Connect!
当访问密码库文件中保存的账号和网址时,就会自动填写账号密码。