坦白说:我转向1Password不是因为密码。当然,它处理密码。但那只是基本功能。真正让我下定决心把整个数字生活迁移过来的,是看到一位同事用Touch ID轻轻一碰就把代码推送到了GitHub。没有散落在各台机器上的SSH密钥文件,不用记住哪台笔记本上有哪些凭据,不用每次重启都折腾ssh-add。
「等等,什么?」我说。「再演示一遍。」
二十分钟后,我注册了1Password。那是两周前的事,从那以后我再也没有回头。
真正的问题(不只是密码)
密码的问题你已经知道了。你有100多个账户。每个都应该用唯一的密码。你的大脑最多可靠地记住7样东西。所以你重复使用密码,或者用实际上并不聪明的「聪明」变体,而某个地方的黑客正在拿你LinkedIn的密码试遍全美的银行。
数字很残酷
- **81%**的数据泄露使用被盗或弱密码
- **65%**的人在不同网站重复使用密码
- 2024年有240亿对凭据被泄露
- 破解「Fluffy2024」需要的时间:大约3秒
任何密码管理器都能解决这个问题。LastPass、Bitwarden、Dashlane,它们都能生成和存储唯一的密码。我用了好几年的LastPass。没问题。能完成任务。
但关键在于:密码只是开始。SSH密钥呢?API令牌呢?充满秘密的环境变量呢?你那次不小心提交到公共仓库的.env文件呢?(我们都干过。别装了。)
这就是1Password改变一切的地方。
为什么我迁移到了1Password
让我告诉你切换之前我的设置。三台不同机器的~/.ssh里有SSH密钥,而且它们不是同样的密钥。API令牌在便利贴上、文本文件里、发给自己的Slack消息中。我的.env文件是一团复制粘贴的秘密灾难,我只希望没人看到。
它能用。勉强。但每次设置新机器或需要推送到不同的仓库时,都是二十分钟的考古工作。
1Password解决了所有这些。对了,它也管理密码。
开发者功能打动了我
光SSH代理集成就值得切换。我的SSH密钥现在保存在1Password的保险库中,加密并同步到每个设备。当我git push时,弹出一个小的Touch ID提示。我轻触手指。代码部署了。磁盘上没有密钥文件。不用跳ssh-add的舞。只是生物识别确认:是的,是我在推送代码。
但还有更多。我现在把所有API密钥都存在1Password里,OpenAI、Stripe、AWS,所有的。然后在代码中引用它们,永远不把秘密放进文件:
op run --env-file=.env.1password -- npm start这个命令在运行时注入秘密。它们永远不会触碰文件系统。不会意外出现在git中。当我轮换密钥时,在1Password中更新一次,每个项目、每台机器都会自动获取更改。
对于管理多个项目和数十个API集成的人来说,这是变革性的。
安全架构确实讲得通
让我稍微极客一下。1Password使用双密钥系统。你的主密码是一把钥匙。你注册时获得的34字符秘密密钥是另一把。解密保险库需要两者都有。
为什么重要?因为即使1Password的服务器被完全攻破,攻击者得到的只是加密的数据块。他们需要你的秘密密钥才能解密任何东西,而1Password从来没有那个密钥。它只存在于你的设备和你打印出来的那份紧急套件上。
这与LastPass的架构根本不同。当LastPass在2022年被攻破时,加密的保险库被窃取了,而那些保险库至今仍在被暴力破解。如果你的LastPass主密码不够强,你的数据可能已经被泄露了。
与硬件密钥完美配合
如果你读过我们的YubiKey指南,你已经用硬件安全密钥保护了重要账户。1Password与它们完美集成。我的1Password账户本身在新设备上登录需要YubiKey。它还可以存储和管理支持通行密钥的网站的通行密钥。
结果:我最敏感的东西受到拥有的东西(硬件密钥)加上知道的东西(主密码)的保护。再多的钓鱼或SIM卡劫持都破不了。
开始使用:比你想象的简单
我知道你在想什么:「迁移听起来像噩梦。」我也是这么想的。但说实话?大约30分钟就开始使用了,一周内的零散时间就完全迁移了。以下是不会让你抓狂的方法。
首先:创建账户
访问1password.com开始14天免费试用(不需要信用卡)。你要做的最重要的决定是主密码。忘掉你对带符号和数字的「复杂」密码的一切了解。用口令短语代替,四五个随机单词串在一起。
像「purple-elephant-dancing-Tuesday」这样的短语比「P@ssw0rd!23」更容易记住而且更难破解。长度永远打败复杂度。
主密码基本规则
- 可以: 能在脑中创建画面的随机单词
- 不行: 歌词、电影台词或任何可以Google到的东西
- 不行: 关于你的任何信息:生日、宠物名、地址
- 记住: 「rainbow-fish-mountain-coffee」碾压「R@inb0w!」
登录后,1Password会给你一份紧急套件,包含你的秘密密钥的PDF。把它打印出来。 存放在防火的地方。如果你忘记主密码或同时丢失所有设备,这是你的恢复生命线。别跳过。
然后:保护重要的东西
抵住一次性导入所有东西的冲动。相信我。先从五个账户开始,那些被攻破后伤害最大的:
- 你的主邮箱 -- 这是通往其他一切的万能钥匙(密码重置,记得吗?)
- 你的银行 -- 原因显而易见
- 工作账户 -- 特别是有单点登录的
- 社交媒体 -- 身份盗窃的金矿
- 购物网站 -- 任何保存了支付信息的地方
每个账户正常登录,让1Password保存凭据。然后,关键的一步是立即将该密码更改为随机生成的密码。1Password会建议类似「xK7#mP2@qL9」的东西,没有人类能猜到。用它。反正你也不需要记住它。
最后:启用生物识别,忘记打字
这是让它真正好用的魔法:在手机上设置Face ID或Touch ID,在Mac上设置Touch ID,在PC上设置Windows Hello。现在你几乎不用输入主密码了。快速的生物识别扫描就能登录。轻触自动填充。轻触批准SSH推送。一天内就会成为肌肉记忆。
迁移:没你想象的那么痛
如果你从LastPass来,有好消息和坏消息。坏消息:2022年泄露后,加密的保险库仍在被黑客暴力破解。如果你的主密码不够出色,你的数据可能已经暴露了。好消息:迁移大约十分钟就完成了。
从LastPass迁移
登录LastPass网页保险库,进入Account Options → Advanced → Export,以CSV下载密码。在1Password中,点击File → Import,选择LastPass,上传文件...基本就完了。你的密码现在在1Password里了。
重要: 导入后立即删除那个CSV文件。它包含你所有密码的明文。你不会想让它待在下载文件夹里。
从浏览器密码管理器迁移
Chrome、Safari和Firefox都可以导出密码(在设置 → 密码里找找)。导出,导入到1Password,完成。然后禁用浏览器的内置密码管理器,你需要一个唯一的真实来源,而不是三个系统互相打架。
有个技巧我希望有人早点告诉我:导入所有东西后,运行1Password的Watchtower功能。它会扫描你的密码,标记弱的、重复使用的和出现在已知泄露中的。我发现了23个需要立即处理的密码。先修复那些。
家庭计划:让所有人参与
有件事我没想到:1Password的家庭计划(每月4.99美元,最多5人)实际上让我的家庭运转更顺畅了。不再有「Netflix密码是什么?」的消息。不再因为有人忘记而重置WiFi密码。
它的运作方式很聪明。每个人有自己的私人保险库存放个人物品。然后创建每个人都需要的共享保险库。
我的家庭保险库结构
- 个人保险库: 每个人自己的账户,完全私密
- 共享保险库: 流媒体服务、WiFi、家庭警报、共享订阅
- 紧急保险库: 保险文件、重要联系人、「以防万一」的东西
- 孩子保险库: 学校登录、批准的游戏(家长可以看到一切)
每个人有自己的主密码。孩子小的时候可以用简单的,你可以随着他们成长帮助创建更强的。最厉害的功能是:如果有人忘记了密码,家庭管理员可以帮助恢复。不会再因为奶奶看不了她的节目而引发家庭戏剧。
不只是密码,是你的整个数字生活
一旦你开始用1Password管理密码,你会发现它可以存储其他一切。我的已经变成了我整个数字身份的安全保险库。
信用卡(这个真的有用)
添加信用卡后,浏览器扩展会在结账时自动填充。听起来小事,但想想看:你不用在可能有键盘记录器的随机网站上输入卡号。不用在咖啡店里把CVV暴露给肩后偷看的人。钱包在另一个房间也能买到需要的东西。
所有需要存储的杂七杂八
软件许可证密钥。每个去过的地方的WiFi密码。那些安全问题的答案(专业建议:用随机字符串而不是真实答案。「你母亲的娘家姓?」→「purple-carburetor-7」)。双因素认证的备份代码。那些如果你不装负责就会写在便利贴上的东西。
身份证件
我的护照、驾照和保险卡都扫描存进去了。填表需要护照号?三秒。在医院被问保险详情?手机上就有。国际旅行需要签证信息?全都在那。
改变一切的开发者工作流
好了,这是我真正想写的部分。如果你写代码,哪怕是偶尔写,这个部分将改变你的工作方式。
记得让我入坑1Password的那位同事吗?他兴奋的不是密码。他兴奋的是这个:一个统一的工作流,SSH密钥、API令牌和秘密都存储在一个安全的地方,从任何机器用一次生物识别轻触就能访问。
设置CLI(5分钟)
首先,获取命令行工具。Mac上只需brew install 1password-cli。然后运行op account add登录,准备就绪。
# 安装(选择你的平台)
brew install 1password-cli # macOS
winget install AgileBits.1Password.CLI # Windows
# 登录一次
op account add最好的部分:一旦在1Password桌面应用中启用生物识别解锁,CLI也会使用它。不用每次需要秘密时都输入主密码。
无混乱的SSH密钥
这是打动我的功能。进入1Password Settings → Developer → SSH,打开「Use the SSH agent」,在你的shell配置中加一行:
# 添加到 ~/.zshrc 或 ~/.bashrc
export SSH_AUTH_SOCK=~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock现在你的SSH密钥存在1Password里。不是在~/.ssh中任何人都能复制的明文文件。不是散落在三台不同的笔记本上。它们被加密、随处同步,每次使用都需要生物识别确认。
当我现在git push时,弹出一个小的Touch ID提示。我轻触。代码部署了。不用想密钥,不用ssh-add,不用「等等,那个密钥在哪台机器上?」只需轻触就好。
不会泄露的API密钥
这是我最喜欢的技巧。不把秘密放在最终会进入git的.env文件中(我们都干过),我创建一个只引用秘密的.env.1password文件:
# .env.1password - 可以安全提交!
OPENAI_API_KEY=op://Development/OpenAI API Key/api_key
DATABASE_URL=op://Development/Production DB/connection_string
STRIPE_SECRET=op://Development/Stripe/secret_key这些只是指针。实际的秘密永远不会触碰文件系统。需要运行什么时:
op run --env-file=.env.1password -- npm start1Password在运行时注入真实值。如果我不小心提交了这个文件?无所谓。只是引用而已。秘密留在保险库中。
轮换API密钥时,在1Password中更新一次。每个项目、每台机器都自动获取更改。不用再在代码库中grep搜索硬编码的令牌。
GitHub:完整设置
专门针对GitHub,你可以直接在1Password内生成SSH密钥(Settings → Developer → SSH → Create SSH Key)。复制公钥,粘贴到GitHub Settings → SSH Keys,完成。
用ssh -T [email protected]测试。你会看到生物识别提示,轻触手指,看到「Hi username! You've successfully authenticated.」
就这样。整个GitHub SSH设置就是这样。不再需要ssh-keygen,不再复制文件,不再因为加载了错误的密钥而出现「permission denied (publickey)」错误。
快速参考:日常使用
键盘快捷键 (macOS)
⌘ + \— 在浏览器中自动填充⌘ + Shift + X— 打开1Password迷你窗口⌘ + Shift + L— 锁定1Password⌘ + N— 新建登录(在应用内)⌘ + Shift + C— 复制密码
CLI快速参考
# 列出所有项目
op item list
获取特定密码
op item get "Amazon" --fields password
创建新的安全密码
op item create --generate-password
读取秘密(用于脚本)
op read "op://Vault/Item/field"
用注入的秘密运行命令
op run --env-file=.env.1password -- command
全栈:一切如何连接
如果你一直在跟着我们的YubiKey指南,这是我当前设置中所有东西的连接方式:
- 1Password本身: 新设备需要主密码 + YubiKey
- 邮箱: 1Password中的唯一密码 + YubiKey双因素
- 银行: 唯一密码 + 存储在1Password中的通行密钥
- GitHub: 由1Password代理管理的SSH密钥(Touch ID推送)
- 所有API密钥: 在1Password中,运行时注入,永不写入文件
- 其他一切: 随机生成的密码,即时自动填充
这算过度吗?也许吧。但切换以来我再也没有过凌晨2点的「忘记密码」恐慌。我没有担心过API密钥泄露。我没有纠结过哪台笔记本有正确的SSH密钥。每当我轻触手指推送代码而不是摸索凭据时,我都记得为什么做了这个切换。
两周后:值得吗?
毫无疑问。不只是为了安全,虽然安全确实重要。日常生活质量的提升是实实在在的。登录网站是瞬间的事。在线结账只需一次轻触。设置新笔记本以前要花好几个小时;现在整个凭据设置几分钟就同步完成。
但说实话?我想得最多的是开发者工作流。用Touch ID git push。那些不可能泄露的API密钥。确信我的秘密没有散落在十几台机器的十几个文本文件中。
开始免费试用。花30分钟设置好。给它一周时间。你会明白的。
行动计划
- 今天: 开始1Password试用,创建主口令,保存紧急套件
- 本周: 从浏览器/LastPass导入密码,保护最重要的5个账户
- 本月: 添加家庭成员,启用Watchtower,修复弱密码
- 如果你写代码: 设置CLI,启用SSH代理,迁移API密钥