个人保险库迁移到 Hub —— 用 Recovery Key 导入
什么时候要迁移到 Hub
典型场景:你在公司里已经用 Cryptomator 个人版加密了一堆文档,现在团队扩大了,想让助理也能访问这些保险库——但不想把密码共享出去(太危险)。Hub 就是这个场景的完美解决方案。
迁移步骤(导入个人保险库)
前提条件
- 你有一个正常工作的 Hub 实例(托管或自部署都行)
- 你是这个 Hub 实例的管理员或有创建保险库权限
- 你有个人保险库的 Recovery Key(密码也行,但 Recovery Key 更方便)
- 你能访问个人保险库的密文目录(有读写权限)
流程
- 登录 Cryptomator Hub 网页控制台
- 找到 Import Vault 或类似的入口(不同 Hub 版本 UI 略有差异)
- 选择你要导入的存储位置(比如你之前存保险库的那个云盘目录,或者 Hub 推荐的一个新目录)
- 输入 Recovery Key(或 Recovery Key + 确认保险库目录)
- Hub 会用 Recovery Key 反推出主密钥 → 然后用 Hub 的 ECDH-ES JWE 重新加密主密钥
- Hub 在你指定的存储位置里生成 Hub 版的 vault 配置(
vault.cryptomator里的kid会从masterkeyfile:变成hub+// Hub 实例 API 地址) - 导入完成 → 这个保险库现在归 Hub 管理了
导入后发生了什么
- 文件内容完全没变——因为主密钥没换,还是原来那对 512 bit
- 文件名加密没变——还是原来的加密文件名(确定性加密依赖主密钥)
- 变化的是:
vault.cryptomator和masterkey.cryptomator(或 Hub 管理的其他配置文件)里的密钥指向变了 - Hub 现在能管这个保险库的权限——可以指定谁是 Owner、谁是 Member、谁只读
导入后旧的个人保险库怎么办
导入完成后,旧的个人保险库已经变成了 Hub 保险库——Hub 会改写了配置文件。你不需要手动搬任何文件。
但有几件事要注意:
- 旧密码现在无效了吗? 是的——Hub 改写了 masterkey,旧密码(它是用来派生旧 KEK 的)解不开新的 masterkey。解锁这个保险库现在要通过 Hub 账号。
- Recovery Key 还能用吗? Hub 导入时会用 Recovery Key,但导入之后 Hub 接管了密钥管理。原来的 Recovery Key 和主密钥仍然有效——但 Hub 建议你把旧 Recovery Key 销毁,让 Hub 成为唯一的密钥管理方。
- 旧的 masterkey.cryptomator 文件会怎样? 如果 Hub 管理的保险库的密钥托管方式是纯 ECDH-ES(不需要 masterkey 文件),旧 masterkey 可能不再被使用——或者 Hub 会保留它但用新的加密方式包裹。看 Hub 版本。
如果导入失败
导入最常见的失败原因:
| 失败原因 | 怎么解决 |
|---|---|
| Recovery Key 输错了 | 12 词每个都要对,顺序也要对。用自动补全(见上一页) |
| 保险库目录没写权限 | 导入过程中 Hub 需要写入新配置文件,确保你能改目录里的文件 |
| 保险库版本太老 | Format 7 的保险库不能直接导入 Hub。先在 Cryptomator 1.6.0+ 里迁移到 Format 8 |
| 存储位置有冲突 | 你选的 Hub 存储位置和现有文件有冲突——换一个空目录或备份后重来 |
反向:Hub 保险库变回个人密码保险库
也可以。Hub 2.0 引入的 Emergency Access(紧急存取)功能允许 Hub 管理员:
- 在 Hub 控制台生成一个新的个人保险库密码
- Hub 用原来的主密钥 + 新密码派生 KEK + AES Key Wrap
- Hub 写回新的
masterkey.cryptomator vault.cryptomator的kid改回masterkeyfile:masterkey.cryptomator- 这个保险库就变回了个人密码保险库
什么时候需要反向?
- Hub 服务端挂了、没人能修(Emergency Access 就是这种场景的紧急出口)
- 团队解散了,你想把保险库变回自己独立管理