rclone crypt 加密备份:配置文件里那串"乱码"密码,一条命令就能还原
如果有人拿到了你的 rclone.conf,他能不能解开你网盘里的加密备份?
第一反应是不能,配置文件里的 password 是一串看不懂的字符。测了一下,答案是能,而且很快。
先交代环境:下面的过程先在一台 Debian 测试机上跑过,rclone v1.75.2。为了不依赖真实网盘,测试里的"网盘"是一个本地目录(remote 名叫 box,类型 local),crypt 叠在它上面,原理和接真实网盘一样。
crypt 是怎么叠上去的
rclone 的加密不是独立的存储,而是包在另一个 remote 外面的一层。配置大概是这样:
[box]
type = local
[secret]
type = crypt
remote = box:/srv/rc-lab/dst
password = (obscure 过的值)
password2 = (obscure 过的值)
往 secret: 写东西,rclone 先加密,再写到 box 的那个目录里。password2 是盐,可以不设,建议设上。
正常应该用 rclone config 交互式创建,它会帮你把密码 obscure 好。我一开始图快,直接手写了明文:

报错很明确:failed to decrypt password: input too short when revealing password - is it obscured? 配置里的密码必须是 obscure 过的形式。手写的话先 rclone obscure 你的密码,把输出贴进去。
同步、看效果、校验
rclone sync src secret:vps1 -v
src 里放了三个文件:一个 jail.local、一个 300000 字节的 komari.db、一个 notes.txt。

直接看 box 底下,文件名和目录名全加密了,komari.db 变成了 300112 字节,多出的 112 字节是加密的文件头(32 字节)加上每 64KB 一块的校验(5 块 × 16 字节)。通过 secret: 去看,就是原来的名字和大小。
验证备份对不对,用 rclone cryptcheck,它会拿本地文件按同样的方式算校验和,和远端加密后的比。输出 0 differences found、3 matching files 就是一致的。
普通的 rclone check 对 crypt 不太好使,因为远端存的是密文,哈希对不上,这也是 cryptcheck 存在的原因。
sync 会删东西
sync 的意思是让目标和源一模一样。源里删了文件,目标里也会删。
服务器上误删了一个文件,几分钟后定时任务一跑,网盘里的备份也没了。这不是备份,是镜像。
所以先 --dry-run 看看会删什么,然后加上 --backup-dir,被删或被覆盖的文件先挪过去:

测试时删掉了 notes.txt。dry-run 里能看到 Skipped delete,说明真跑会删。加上 --backup-dir secret:old/2026-11-01 再跑,日志是 Moved into backup dir,去 secret:old 下面能找到它。
backup-dir 要和目标在同一个 remote 上,而且不能互相包含,所以我用的是 secret:old,和 secret:vps1 并列。目录名带日期,每天一个,过段时间手动清理旧的。
重点:obscure 不是加密
回到开头那个问题。配置文件里的 password 看着像乱码,但 rclone 自己就能把它还原:

rclone reveal 后面跟那串值,明文密码直接出来。这是设计如此,官方文档也说了 obscure 只是防止别人瞄一眼就记住,不是安全措施。
这意味着:rclone.conf 泄露 = 加密密码泄露 = 网盘里的备份能被解开。而这个文件很容易被带出去,比如整机打包备份时连它一起传上网盘,或者排查问题时把配置贴给别人看。
给配置文件再加一层
rclone 支持把整个配置文件加密:
rclone config encryption set
它会让你输入一个配置密码。测试时为了能截图,我用 RCLONE_PASSWORD_COMMAND 从一个文件里读密码:

加密后的文件开头是 RCLONE_ENCRYPT_V0:,后面是一整块密文,里面的 remote、密码都看不到了。不给配置密码再运行 rclone,会卡在 Enter configuration password 然后报 Failed to read line: EOF。带上 --password-command,一切照常。
定时任务里怎么办?总得有个地方放配置密码。可以放在只有 root 能读的文件里(chmod 600),定时任务用 --password-command "cat /root/.rclone-pass" 读。
说实话,密码文件和配置文件在同一台机器上,机器整个被拿下的话这层没用。它防的是另一种更常见的情况:配置文件单独被带出去了。为了这个,多一个文件值得。
别忘了的两件事
crypt 的 password 和 password2 一定要另外存一份,存在这台服务器以外的地方。服务器没了、配置文件没了,网盘里的备份就是一堆打不开的文件,rclone 也帮不了你。
再就是恢复演练。备份做好以后,挑个时间在另一台机器上,只用你另存的那两个密码重新建一个 crypt remote,rclone copy 拉一个文件下来打开看看。这一步做过一次,才算真有备份。
- 点赞
- 收藏
- 关注作者
评论(0)