无法挂载旧的加密主目录

jos*_*ith 7 mount ecryptfs

我将我的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)

提前致谢!

Xen*_*050 1

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可以有更多信息。


Yar*_*ina 1

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)