IcyBlog

把密码管理器从iCloud Keychain迁移到1Password

2,092 字 11 分钟
AI 摘要
作者因在Windows开发,从iCloud钥匙串迁到1Password:iOS 26可直接导出密码、TOTP与Passkey,Watchtower能查出泄露密码和重复条目,SSH Agent让私钥不离开应用,纯苹果生态用户则无须更换。

前言

我一直是Apple生态的忠实用户,所以从刚出来到现在已经高强度用了两年多的iCloud钥匙串来管理我的密码了。
如果你也是一名Apple生态重度用户,并且看这篇文章是好奇1Password有什么优点,那么我可以很负责任地告诉你:在Apple生态内,iCloud Keychain是无可置疑的强、无可置疑的好用,完全没有必要去折腾换密码管理器。

product-password-manager-open-graph-graphic-1200x630

为什么要迁移

最近要在我的Windows电脑上做一些开发,于是自然而然地需要密码管理,但是每次打开Edge都只能面对一堆远古时期的密码,以及明明设置了Passkey却不在Edge密码管理器里的尴尬情况,总之就是特别特别的麻烦。正好之前有闲工夫搞了一个Personal订阅,再加上它 有MCP可以给Agent用自己的密码 这个很厉害的Feature,并且舍友每天在我耳边吹嘘这玩意有多好用,于是就顺理成章地萌生出了迁移的想法。

迁移前的准备

先查了一圈AI,AI让我导出CSV,然后再用1Password的导入功能导进去。问题是这样根本不保留TOTP和Passkey,然后我就笨笨地手动重新添加了一遍TOTP和Passkey,,结果后面才发现…

从iCloud Keychain导出

在iOS 26及以上的系统中,由于用上了 FIDO 联盟的 Credential Exchange 标准,我们可以 直接把密码从系统的“密码”App导出到1Password,直接省去了99%的麻烦事~

需要注意的是,虽然macOS上也支持从“密码”App导出到其它应用,但是1Password目前只支持在iOS设备上直接导入。

这样做的好处是既不会生成明文 CSV,而且密码、TOTP、Passkey等都能一股脑全迁过去。

方法也十分简单:打开“密码”App,点击右上角的省略号,选择“将数据导出到其他 App”,再选 1Password 就完事了。

善用Watchtower

迁移完之后千万别急着关掉1Password,先点开侧边栏里的 Watchtower 看一眼。

简单来说,Watchtower 就是1Password内置的“密码体检”,它会扫一遍你存进去的所有条目,然后告诉你有啥问题,官网也有专门的介绍页。

_2026-11-07_01.17.15

很坏的,iCloud钥匙串用了两年多,里面积攒了多少历史遗留问题我自己都不知道,直接导进来以后一次性全给我翻出来了。(

它主要会帮你查这些东西,完整列表可以看官方文档:

  • 泄露的网站 / 易受攻击的密码:网站出过数据泄露而你之后没改密码,或者这个密码本身就出现在已知的泄露库里
  • 重复使用的密码 / 弱密码:如题
  • 不安全的网站:条目里的网址是 http:// 开头但网站其实支持 HTTPS 的,点一下横幅就能改成 https://
  • 可用的通行密钥:网站已经支持 Passkey 但你还没建的,吃饱了撑着可以去搞一下,本质是打开他们自己的一个Passkey导航(?
  • 可用的两步验证:同上
  • 即将过期:银行卡、驾照这类东西过期前会提醒你,默认银行卡和驾照是提前2个月,护照是提前10个月
  • 重复条目:同一个保管库里内容完全一样的条目,可以一键全删

如果你跟我一样是从别的地方导入的,重复条目这一项大概率会有惊喜() (本人不小心导入了三次密码,清理了几千条出来,,,,

配置SSH Agent,不仅是SSH

除了跨平台填密码,1Password SSH Agent 算是我个人认为最“果味”的一个功能了,而且这玩意不仅能管SSH还能管Git。。

众所周知,Mac和Windows双持开发的时候,最烦的一件事就是管 ~/.ssh 底下的那堆私钥:要么两台电脑各生成一套再挨个往GitHub和服务器上填公钥,要么就得想办法把 id_ed25519 安全地拷过去,而且私钥就这么明文躺在硬盘上其实也挺哈人的(
别问,问就是不想在专门打游戏的Windows机器上装个Termius。。我其实不是很喜欢这东西。

1Password的思路很简单:你把SSH密钥直接存进1Password里,然后开它自带的SSH Agent。之后不管是 ssh 连服务器还是 git push,客户端只管找1Password要签名,私钥全程不会离开1Password。每次有程序想用你的密钥,1Password就会弹窗让你按一下Touch ID或者Windows Hello放行,解锁期间同一个终端再连就不用重复按了。

完整的配置流程可以看官方的 Get started 文档,其实就几步:

1. 把密钥塞进1Password

打开1Password,新建条目选 SSH Key,可以直接点 Generate New Key 生成一把新的(支持 Ed25519 和 RSA,无脑选Ed25519就行),也可以直接扫出你 ~/.ssh 目录下的现有密钥。

顺带一提,如果你装了浏览器插件,去GitHub之类的地方加公钥的时候,点一下输入框1Password就能直接把公钥自动填进去,连复制粘贴都省了。

需要注意它默认只会加载你主保管库(Personal / Private)里、而且没有被归档的 SSH Key 条目。如果你把密钥丢进了自己新建的Vault,后面就得手写一个 agent.toml 去指定了,所以没事直接放默认库最省心。

2. 打开SSH Agent开关

打开1Password桌面端的 设置 → Developer,把 Use the SSH Agent 勾上就行了。

Windows用户这里有个地方得注意一下:开启之前得先按 Win + R 输入 services.msc,找到系统自带的 OpenSSH Authentication Agent 服务。如果它在跑,右键把它停掉,再把启动类型改成 禁用。因为Windows下大家抢的都是同一个命名管道 \\.\pipe\openssh-ssh-agent,自带的服务不关,1Password是接管不了的。

3. 让系统的SSH和Git走1Password

直接应用内点一下就行了,全自动,怎么样很爽吧😁

4. 测试一下

配完之后可以先看看1Password有没有把你的钥匙吐出来,随便ssh一下:

Terminal window
ssh -T git@github.com

只要弹出来1Password的授权窗口,按一下指纹看到 Hi xxx! You've successfully authenticated 就稳了,然后就可以直接把你磁盘里的私钥删掉了(不过我是丢了一份在Termius里。

最后提一嘴,如果你跟我一样脑子有病,往1Password里塞了超过6把SSH密钥,连某些服务器的时候可能会直接报 Too many authentication failures。这是因为OpenSSH服务端默认最多只让你试6次,SSH Agent如果按顺序一把一把掏出来试的话,很容易还没试到对的那把就被踢了(官方管这叫 six-key limit)。遇到了去 .ssh/config 里给对应Host加上 IdentityFile 指定一下公钥,并配上 IdentitiesOnly yes 就行。

总结

折腾完这一圈下来,最大的感受就是:只要你有一台设备跳出了Apple全家桶(比如像我一样突然要在Windows上干活),1Password这波确实是降维打击。从密码、TOTP、Passkey到SSH私钥,基本上所有跟“认证”沾边的东西都能塞进同一个地方管起来,再配上它的CLI和MCP,拿来搞开发属实是太舒服了。

当然回到文章最开头说的,如果你手头清一色全是Apple设备,那原生的“密码”App依然是永远的神,免费又无感,真没必要花这冤枉钱折腾(

最后顺手提两个迁完之后别忘了收尾的小事:

  1. 关掉原来的自动填充:在iPhone / Mac的 设置 → 通用 → 自动填充与密码 里,把iCloud钥匙串勾掉、只留1Password,浏览器自带的保存密码也顺手关了,我直接把iPhone上的Passwords App删了(
  2. 存好你的 Emergency Kit:注册的时候1Password会让你下一份带 Secret Key 的PDF,一定得存好,我直接丢iCloud上了。

Lets Gooooooo!

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

把密码管理器从iCloud Keychain迁移到1Password

https://blog.icybit.cn/posts/44
作者
IcyMichiko
发布于
2026-11-07
许可协议
CC BY-NC-SA 4.0

评论

Markdown

评论区加载中…