我将我的home目录托管在与 Ubuntu 安装的其余部分分开的硬盘驱动器上。我最近得到了一个新驱动器,我正在将我的用户数据从旧驱动器迁移到新驱动器。
问题是:我使用 ecryptfs 来加密我用户的主目录,现在我无法挂载旧的加密目录。我知道这个类似的线程,并且我尝试ecryptfs-recover-private按照建议使用该命令,但出现以下错误(使用 的输出更新dmsg):
jrsmith3@hermes:~$ sudo ecryptfs-recover-private || sudo dmesg -T | tail -n 5
INFO: Searching for encrypted private directories (this might take a while)...
INFO: Found [/mnt/.ecryptfs/jrsmith3/.Private].
Try to recover this directory? [Y/n]:
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n]
INFO: Enter your LOGIN passphrase...
Passphrase:
Inserted auth tok with sig [154a85415793937b] into the user session keyring
mount: No such file or directory
ERROR: Failed to mount private data at [/tmp/ecryptfs.HUXQDUjB].
[Sun Dec 6 10:21:34 2015] Could not find key with description: [a798123c6b6e6b59]
[Sun Dec 6 10:21:34 2015] process_request_key_err: No key
[Sun Dec 6 10:21:34 2015] Could not find valid key in user session keyring for sig specified in mount option: [a798123c6b6e6b59]
[Sun Dec 6 10:21:34 2015] One or more global auth toks could not properly register; rc = [-2]
[Sun Dec 6 10:21:34 2015] Error parsing options; rc = [-2]
Run Code Online (Sandbox Code Playgroud)
我怀疑问题可能不在于 ecryptfs;看起来mount命令出现错误,但我无法弄清楚。
我正在运行 Ubuntu:
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
Run Code Online (Sandbox Code Playgroud)
提前致谢!
ecryptfs-recover-private尝试自己单步执行脚本吗?它只是一个 bash 脚本,您可以将相关行复制并粘贴到终端中,用实际文件替换变量。
您还可以复制ecryptfs-recover-private脚本并对其进行修改,添加一些额外的回显行以查看安装前的变量是什么、要运行的回显行等(我确信有一个 bash 设置可以在运行之前显示每一行,但可以现在不记得了。)
也许签名ecryptfs-insert-wrapped-passphrase-into-keyring或.ecryptfs/Private.sig签名不匹配,尽管脚本会检查这一点......但您的输出会插入一个密钥签名,并尝试使用不同的签名进行安装。
至少您可以运行 mount with-v以获得更多反馈并验证文件夹和签名是否正确。
还有一个错误,我想只是在这里,mount.ecryptfs但可能会出现在这里,其中 fnek 和 fekek 信号以某种方式交换。
或者,也许某些文件已损坏。可能需要任何fsck新闻或当前备份。还/var/log/syslog可以有更多信息。
ERROR: Failed to mount private data at [/tmp/ecryptfs....]将以前的(原始)POSIX 用户名重命名为 old_user,然后使用原始(以前的用户名)登录创建一个新用户后,我遇到了同样的错误。
为了能够从 old_user 挂载加密的主目录,我必须在其文件夹中重新创建 .encryptfs 和 .Private 的符号链接(因为它们指向 /home/original_name/)。
之后,以下命令安装旧家没有任何问题。
/usr/bin/ecryptfs-recover-private /home/old_user/.Private
Run Code Online (Sandbox Code Playgroud)
如果上述由于关键问题而失败(请参阅 dmesg 或 syslog),例如
Could not find key with description: [XXX]
process_request_key_err: No key Could not find valid key in user session keyring for sig specified in mount option: [XXX]
Run Code Online (Sandbox Code Playgroud)
然后,尝试手动添加密码:选项1 (/usr/bin/ecryptfs-manager它可能会显示密钥已经存在,没关系。),然后ecryptfs-recover-private /home/old_user/.Private再次执行。如果仍然出现错误,请尝试以下命令:
ecryptfs-insert-wrapped-passphrase-into-keyring /home/old_user/.ecryptfs/wrapped-passphrase
Run Code Online (Sandbox Code Playgroud)