我有一台带有加密主分区的 ubuntu 18.04 机器,主目录使用 rsnapshot 备份。例如,我的 rsnapshot 驱动器中有以下目录结构:
darren@hepburn ~ $ ls -al /mnt/snapshots/hourly.0/hepburn/home/.ecryptfs/darren/
total 60
drwxr-xr-x 4 darren darren 4096 Apr 7 15:15 .
drwxr-xr-x 4 root root 4096 Nov 10 2015 ..
drwx------ 2 darren darren 4096 Nov 1 2015 .ecryptfs
-rw-rw-r-- 1 darren darren 1278 Apr 7 15:15 .encfs6.xml
drwx------ 145 darren darren 45056 Apr 7 11:50 .Private
如果我尝试挂载备份目录来检索文件,则不会从 encfs 收到任何错误,但在挂载的目录中看不到任何文件:
darren@hepburn ~ $ encfs -v /mnt/snapshots/hourly.0/hepburn/home/.ecryptfs/darren/ /tmp/backup
VER Root directory: /mnt/snapshots/hourly.0/hepburn/home/.ecryptfs/darren/ [main.cpp:540]
VER Fuse arguments: (daemon) (threaded) (keyCheck) encfs /tmp/backup/ -o use_ino -o default_permissions [main.cpp:541]
VER found new serialization format [FileUtils.cpp:294]
VER subVersion = 20100713 [FileUtils.cpp:308]
VER checking if ssl/aes(3:0:2) implements ssl/aes(3:0) [Interface.cpp:110]
VER allocated cipher ssl/aes, keySize 32, ivlength 16 [SSL_Cipher.cpp:333]
VER useStdin: 0 [FileUtils.cpp:1588]
EncFS Password:
VER checking if ssl/aes(3:0:2) implements ssl/aes(3:0) [Interface.cpp:110]
VER allocated cipher ssl/aes, keySize 32, ivlength 16 [SSL_Cipher.cpp:333]
VER cipher key size = 52 [FileUtils.cpp:1596]
VER checking if nameio/block(4:0:2) implements nameio/block(4:0) [Interface.cpp:110]
darren@hepburn ~ $ ls -al /tmp/backup/
total 68
drwxr-xr-x 4 darren darren 4096 Apr 7 15:15 .
drwxrwxrwt 35 root root 61440 Apr 7 15:50 ..
这不是密码问题,如果我使用错误的密码,我会被告知:
...
EncFS Password:
VER checking if ssl/aes(3:0:2) implements ssl/aes(3:0) [Interface.cpp:110]
VER allocated cipher ssl/aes, keySize 32, ivlength 16 [SSL_Cipher.cpp:333]
VER cipher key size = 52 [FileUtils.cpp:1596]
VER checksum mismatch: expected 3670270093, got 4217147638 [SSL_Cipher.cpp:541]
VER on decode of 48 bytes [SSL_Cipher.cpp:543]
Error decoding volume key, password incorrect
我在这里做错了什么?
答案1
我看到的一个问题是,加密家庭通常使用 eCryptFS,而不是 EncFS,因此 EncFS 无法解密任何这些文件是正常的。
我也没有在您尝试解密的目录中看到任何通常很长的随机加密文件文件名。
如果您刚刚使用 rsync / rsnapshot 复制了您的主文件,那么您应该尝试使用 eCryptFS 工具ecryptfs-recover-private
(仅供参考,它是一个 shell 脚本文件,您可以自己阅读甚至逐行运行)。
如果您只是使用 EncFS 来加密某些 eCryptFS 文件夹的备份,而不是尝试解密 eCryptFS 文件夹,那么 syslog 可能有一些来自 encfs 的消息,或者您可以尝试 -f(前台)选项以及 -v 来查看终端中的消息,并在尝试读取解密文件夹和其中的任何文件时检查新消息。