云同步说明
Termark 可以把主机、凭证、分组、代码片段、端口转发等数据在设备之间同步。同步使用你自己的存储渠道保存数据,数据在离开设备之前会用你设置的同步密码加密。
核心原则
同步渠道本身只保存在当前这台设备上,不会上传到云端。Termark 更不会替你保存渠道地址或访问凭证。
支持哪些同步渠道
Termark 支持以下同步渠道:
- 官方同步:Termark 官方在线同步服务,使用你的账号登录。
- GitHub:把同步数据作为一个私有仓库保存,使用 Personal Access Token 访问。
- Git:指向任意 Git 远程仓库(例如你自己的 Gitea、GitLab、自建 Git)。
- WebDAV:指向任意 WebDAV 服务(例如 Nextcloud、群晖、自建 WebDAV)。不支持坚果云,原因见下方说明。
- S3:兼容 S3 的对象存储(例如 AWS S3、MinIO、Cloudflare R2、腾讯云 COS、阿里云 OSS)。
- iCloud:iCloud Drive 目录(macOS)。
- 本地文件夹:本机或局域网共享目录。
- FTP / SFTP:指向任意 FTP 或 SFTP 服务器。
除官方同步使用 Termark 账号登录外,其余渠道都由你提供存储位置和访问凭证,数据存放在你自己的服务或空间里。
不支持坚果云(Nutstore)
坚果云虽然提供 WebDAV 接口,但它对第三方应用的访问频率有严格限制,Termark 的同步请求会被限流中断,无法完成稳定同步,因此不在支持范围内。请改用 Nextcloud、群晖(Synology)或自建 WebDAV 服务。
同步数据如何加密
使用非官方渠道时,数据会先在你本机加密,再上传到你的存储空间:
- 同步密码由你设置。Termark 使用 PBKDF2-SHA256 从同步密码和随机 salt 派生 32 字节密钥。
- 需要上传的同步数据使用 AES-256-GCM 加密,上传到同步服务或第三方存储中的内容是密文。
- 同步密码不会上传给服务端,也不会放到你的存储空间里。
- 服务端(第三方渠道)只负责保存和传输密文,无法解密你的主机、凭证、私钥等信息。
如果你选择"记住同步密码",Termark 会把同步密码保存到系统 keychain 中,服务名是 termark.app,条目名是 sync-passphrase。它与本地数据密钥条目 local-data-key 是两个不同条目,互不替代。
为什么同步密码不能重置
我们没有设计"找回密码"的流程,这不是功能缺失,而是加密方式本身决定的:
- 我们手上没有任何可以拿来做重置的东西。 同步密码从一开始就不离开你的设备:既不上传服务端,也不会写进你的存储空间,所以不存在一份可以被找回、或用来校验重置的副本。它也不与任何账号绑定——识别一个渠道靠的是渠道凭证,而渠道凭证同样只留在本机。
- 你的存储里只有密文。 每一份加密数据的结构是
salt + nonce + ciphertext,打开它的 AES 密钥只能由同步密码经 PBKDF2-SHA256 派生。没有密码就派生不出密钥,你的同步服务、第三方存储和我们都不行。 - 本机唯一与密码相关的值是一段校验密文,不是密码本身。 Termark 会用你的同步密码加密一段固定标记,把这段密文保存在本地渠道配置里,作用只是让 App 在本机立刻判断你输入的密码对不对。它不是备份:无法反推出密码,也不会上传。
所以"重置同步密码"只可能是一种含义:放弃渠道里的旧密文,用一个新密码重来。
忘记同步密码之后怎么办
- 打开同步设置,使用重置同步密码 → 重置并覆盖云端。Termark 会用新密码加密本机数据,并强制覆盖云端那份数据。云端原有数据将永久丢失,任何人都无法再解密,包括我们。
- 请在想保留数据的那台设备上执行这一步——覆盖上传的是这台设备的本地数据。
- 在其他设备上改用新密码解锁同一渠道。
对于基于 Git 的渠道(GitHub、Git),仓库会保留旧密文的提交历史,修改同步密码不会重新加密旧提交。旧密码一旦丢失,那些旧提交就永远无法解开,因此建议给同步单独使用专用仓库或专用分支。
同步渠道配置为什么不随云端一起同步
这是被问得最多的一个问题:为什么我自己配置的同步渠道,换了设备还要再配置一次?
答案在于同步渠道本身不走云端:
- 同步渠道的完整配置(渠道类型、服务器地址、仓库路径、账号、Token/密码等)只保存在当前这台设备的本地数据库中,并像其他敏感字段一样加密落盘。
- 这些渠道配置不会被写入待上传的同步数据中,因此不会出现在你的任何云端存储里。
- Termark 不会、也不能替你保存渠道地址或访问凭证。
也就是说,云端上的只有你的业务数据(主机、凭证、分组等)快照,而"这份数据放在哪里、该怎么连进去"这个信息,始终只存在于你的设备本地。
为什么必须这样设计
假设 Termark 把同步渠道也一起同步过去,理论上换设备就不用重配了。但这意味着你的渠道地址和访问凭证会被我们的服务端获得和存储。一旦渠道信息离开你的设备、集中到我们的服务器上,就产生两个问题:
- 数据源不再是"你的"。你的数据明明存在你自己的 WebDAV / S3 / Git 里,可连过去的方式却要经过我们的中转和存储,你的数据源就变成了"挂在我们服务下的存储",失去了自己掌控数据源的意义。
- 多了一处泄露渠道凭证的风险点。渠道凭证本就敏感,集中存放在服务端只会增加泄露面。把渠道信息留在每台设备本地,是最小化的暴露方式。
所以这不是设计缺陷,而是刻意的取舍:数据放在你自己的存储里,能连进这个存储的钥匙也只在你的设备上。这也是自建同步渠道相比官方同步的核心价值。
换设备时你需要做什么
换到新设备时,只需在设置里重新选择同步渠道、填入渠道地址和访问凭证,再用同一个同步密码解锁即可。渠道信息每台设备填一次;此后数据的读写都走你的存储,不再需要重复同步数据本身。
官方同步 vs 自建渠道
| 对比项 | 官方同步 | 自建渠道(WebDAV/S3/Git/…) |
|---|---|---|
| 登录方式 | Termark 账号 | 你提供的渠道凭证 |
| 数据存放 | Termark 官方服务 | 你指定的存储 |
| 渠道是否需重新配置 | 重新登录账号即可 | 每台设备重新配置渠道 |
| 数据加密 | 同步密码加密 | 同步密码加密 |
官方同步用账号身份换取"换设备免配置渠道"的便利,但数据存放在 Termark 官方服务里。自建渠道则把存储和凭证完全留在你这边。两者都使用你设置的同步密码加密数据。
相关文档
- 本地加密与数据恢复说明:本地数据的字段级加密、系统钥匙串与便携版口令机制。
- 数据存储路径:本地数据文件和目录的位置。