云同步
预览版。云同步是可选功能,目前仍处于预览阶段。keygrant 的其他所有功能都不依赖它,而且在你运行
keygrant push 之前,不会上传任何内容。它如何保护你的密钥值
- 密钥值在你的设备上加密,所用的加密密钥由你的密码和一个 128 位的 Secret Key 派生而来。服务器只存储密文,无法解密。
- 密钥名称以明文存储,方便你查看和审计;密钥值和描述则不是。
- 新设备必须在你比对两边屏幕上的指纹之后才能加入,因此服务器无法偷偷塞进它自己的设备。
- 如果同时丢失密码和 Secret Key,数据将无法恢复,任何人都做不到,包括我们。
设置第一台设备
uv tool install 'keygrant[cloud]' # 添加加密依赖(PyNaCl)
keygrant cloud init # 设置密码;打印你的应急套件
cloud init 会打印你的应急套件:Account ID 和 Secret Key。把它抄下来离线保存,写在纸上,而不是存进会同步的笔记应用。有了应急套件和密码,即使所有设备都没了,你也能恢复。之后可以用 keygrant cloud kit 再次打印。
上传密钥
在你 push 之前,什么都不会离开这台机器:
keygrant push STRIPE_KEY OPENAI_KEY # 上传这些密钥
日常使用
echo "sk-..." | keygrant set STRIPE_KEY && keygrant push STRIPE_KEY # 添加或修改
keygrant push --delete STRIPE_KEY # 从所有地方删除
keygrant sync # 立即拉取
keygrant cloud status # 账户、设备、同步状态
keygrant list 和 keygrant exec 会自动拉取变更,最多每分钟一次,离线时会静默跳过,所以你很少需要手动 sync。
冲突
- 如果两台设备修改了同一个密钥,后一次
push会被拒绝,直到你执行sync。不会自动合并任何内容。 - 你尚未 push 的本地修改永远不会被
sync覆盖。 - 如果某个仅本地的密钥与已同步的密钥同名,它会保持不变,并给出警告。
更多设备
从已有的设备上配对来添加第二台机器;如果手边没有旧设备,也可以只用应急套件。
注销账户
keygrant cloud delete
这会永久删除账户、所有密文以及每一台已配对的设备。密钥会作为仅本地的条目保留在每台机器上,并继续正常工作。系统会要求你输入 Account ID 进行确认。