从 Google passports 换到 1Password

sorcererxw /

谈谈 Google Passports

一直以来我都使用 Chrome 内建的密码管理器(也就是 Google Passwords 服务)来管理自己的密码。在 Android Oreo 之后,Google 也可以作为系统的 Auto Fill 工具,来帮助填写密码。基本上满足了我的大部分需求,而且免费,所以我一直没有去更换。

但是 Google Passports 有不少小问题令我一直非常困扰:

  • 无法有效管理密码

    Google Passports 只能通过 Chrome 内建的「保存的密码」页面进行管理密码,明明有专门的域名 passwords.google.com,但就是不提供网页管理的功能。就算是在 Chrome 上也只能够做到查看密码或者删除密码,无法进行创建密码。

  • 同步数据太慢

    手机端的 Chrome 和电脑上的 Chrome 两边同步数据太慢。一边更新或者添加了一个密码,另一边往往不能立即使用那组密码。

试试 1Passport

所以最近抱着试一试的态度,尝试了 1Password(其实之前我也有尝试过 LassPass,但是因为软件操作体验不是特别友好,被劝退了)。

除了完美地解决了使用 Google Passwords 的痛点,同时还有几个点令我惊喜:

  • 可以管理两步验证密钥

    之前一直苦于 Google/Microsoft 的 Authenticator 没办法云同步,更换手机之后会带来不少麻烦。现在使用 1Password 就能完美进行云同步。而且登录一些网站,1Password 也会非常智能地自动填入两步验证码。

  • 家庭组可以共享密码
  • 可以检测重复或者危险密码
  • 除了密码,也可以保存一些其他类型的文档,比如服务器密钥、信用卡信息

总的来说,1Password 的功能令我非常满意,值得令我去为它付费。

删除旧密码

既然密码已经迁移到 1Password 了,那么旧的密码存在 Chrome 里面就没有意义了。一方面是不安全,另一方面是 Chrome 依然会在密码输入框中弹出密码提示,和 1Password 产生冲突。

不过问题出现了,Chrome 只在「清除浏览记录」中提供清除密码选项,但这个操作只会清除本地的密码,并不会清除云端的密码。清除之后,过一会儿又会被同步下来。除了一条一条删除密码,就没有其他办法可以清除云端密码,真的令人烦恼。

没办法,那么只能一条一条删了,不过我打算用个脚本来减少重复劳动。在 github 上找到了一个工具 cliclick,顾名思义,就是在 CLI 当中模拟 click 操作。

# 使用 Homebrew 就可以安装
brew install cliclick 

然后只需要编写脚本

#!/bin/bash

# 调试的时候不要把循环上限设得太高
# 因为脚本执行期间无法使用鼠标,键盘的焦点也会离开终端,即使有问题也无法进行终止
# 我就因为一开始写成 while true 了导致不得不重启电脑
for i in {1..10} 
do
		# 两个屏幕像素坐标取决于屏幕分辨率+窗口位置,请自行调试
    cliclick m:1385,620 # 密码项右侧的菜单按钮位置
    sleep 0.1 # 因为有动画,所以需要等待,以防误操作
    cliclick m:1382,650 # 弹出菜单的「删除密码」位置
    sleep 0.1
done
执行效果

终于删除完密码了~