解包密码并插入用户会话密钥环失败

Tor*_*uun 16 ecryptfs 11.04

在命令中输入正确的密码后ecryptfs-mount-private,我收到此错误:

torben@torben-nettop:~$ sudo ecryptfs-recover-private
INFO: Searching for encrypted private directories (this might take a while)...
INFO: Found [/media/0f417b42-11a0-4539-9cae-e11ce3b289c3/home/.ecryptfs/
  torben/.Private].
Try to recover this directory? [Y/n]: y
INFO: Enter your LOGIN passphrase...
Passphrase: 
Error: Unwrapping passphrase and inserting into the user session keyring
  failed [-5]
Info: Check the system log for more information from libecryptfs
torben@torben-nettop:~$ 
Run Code Online (Sandbox Code Playgroud)

Syslog 有以下信息:

ecryptfs-insert-wrapped-passphrase-into-keyring:  
  Incorrect wrapping key for file [/home/torben/.ecryptfs/wrapped-passphrase]  
ecryptfs-insert-wrapped-passphrase-into-keyring: Error attempting to unwrap
  passphrase from file [/home/torben/.ecryptfs/wrapped-passphrase]; rc = [-5]
Run Code Online (Sandbox Code Playgroud)

--> 鉴于我绝对确定我输入了正确的密码,我该怎么做才能解决这个问题,以便我可以读取加密的主文件夹?

一些背景:

  • 我已经在一个新驱动器上安装了 Ubuntu 11.04,我想从加密的旧驱动器复制我的主文件夹(我有密码)。
  • 在聊天Marco Ceppi的帮助下,我昨天按照这些精确的步骤成功地获得了对加密主文件夹的访问权限。这证明我的密码确实有效。
  • 然后我启动机器从旧的加密主文件夹复制到新的未加密主文件夹并上床睡觉。当我回到电脑上时,我看到它自己挂了:(并且还没有完成复制文件夹。
  • 我重新启动了计算机,并删除了临时/recovery文件夹,然后再次执行完全相同的步骤,但这是我遇到上述错误的时候。我试了几次;总是相同的结果。我绝对确定我输入的密码正确。

Pau*_*l J 14

更新时间2018 年 6 月 19 日

概括

我最近在尝试从外部驱动器解密一些数据时遇到了类似的错误。每次错误消息来自无效密码时,我都可以整天复制它。而不是使用ecryptfs-recover-private我使用的是ecryptfs-unwrap-passphrase,我认为这是针对特定数据的,尽管我不想查找差异。

注意:这不是复制/粘贴指南,它更像是我成功的记录。

解开密码

你需要找到你的wrapped-passphrase文件。如果您不确定它在哪里,可以使用find. 挂载卷后,您可以执行以下操作:

sudo find /media -name wrapped-passphrase
Run Code Online (Sandbox Code Playgroud)

您将要替换为下面列出的我的路径返回的路径。

安装旧驱动器后的步骤。

cd /media/_UUID_/.ecryptfs/paulj/.encryptfs
ecryptfs-unwrap-passphrase ./wrapped-passphrase
Passphrase:
Run Code Online (Sandbox Code Playgroud)

它总是会提示输入密码,这是在安装 Ubuntu 时创建加密主目录时最初设置的密码。在设置中,它强烈建议您使用与登录密码不同的密码……如果您在过去一小时内一直在尝试登录密码但失败了,请尝试一些不同的密码……尝试使用您很少使用的密码。

我忘记了我的密码是什么,我尝试了所有超级棒的密码,但一直收到以下错误消息:

Error: Unwrapping passphrase failed [-5]
Info: Check the system log for more information from libecryptfs
Run Code Online (Sandbox Code Playgroud)

在谷歌搜索了大约一个小时后,我想我会尝试一个我知道不好的密码,所以我在密码提示下输入了密码。

吐出的是以下内容:

116b053e08564b53b2967e64e509bdc5
Run Code Online (Sandbox Code Playgroud)

我重新运行 ecryptfs-unwrap-passphrase 并尝试了不同的密码并收到与上面列出的相同的 -5 错误消息。事实证明,我实际上已将密码设置为password,这可能是因为我过去对在 ubuntu 中解密数据感到沮丧。

将密码短语添加到键控

将密码短语添加到ecryptfs-add-passphrase,使用在上一步中生成的密码短语。

sudo ecryptfs-add-passphrase --fnek
Passphrase: 116b053e08564b53b2967e64e509bdc5
Run Code Online (Sandbox Code Playgroud)

输出:

Inserted auth tok with sig [b69fed2a22932ba4] into the user session keyring
Inserted auth tok with sig [8aad0fb4482edab3] into the user session keyring
Run Code Online (Sandbox Code Playgroud)

装载或恢复

此时你有两个选择,建议尝试挂载,如果挂不上,尝试恢复。

安装驱动器

很容易将.Private目录视为未挂载的卷。

再次在这里,您需要指定自己的目录。

sudo mkdir -p /home/paulj/Private
sudo mount -t ecryptfs /media/_UUID_/.ecryptfs/paulj/.Private /home/paulj/Private

Passphrase: 116b053e08564b53b2967e64e509bdc5
Select cipher: 
 1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (loaded)
 2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded)
 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)
 4) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)
 5) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)
Selection [aes]: aes

Select key bytes: 
 1) 16
 2) 32
 3) 24
Selection [16]: 16

Enable plaintext passthrough (y/n) [n]: n

Enable filename encryption (y/n) [n]: y <-- If your filenames display oddly, toggle this to y or n.

{this is the second value from Inserted auth tok...}
Filename Encryption Key (FNEK) Signature: 8aad0fb4482edab3

Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_fnek_sig=8aad0fb4482edab3
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=b69fed2a22932ba4
Mounted eCryptfs
Run Code Online (Sandbox Code Playgroud)

希望当您最初创建加密驱动器时,您没有弄乱密码或密钥字节。

显示我旧主目录中的所有数据。

cd /home/paulj/Private
ls -la
Run Code Online (Sandbox Code Playgroud)

注意:此时,如果您获得无效的权限/所有者/组集,您将需要卸载驱动器并跳至“恢复”部分。

例如,如果您获得了良好的权限集,请将加密驱动器中的垃圾复制到桌面。

mkdir ~/Desktop/Backup
cp -Rv ./* ~/Desktop/Backup
Run Code Online (Sandbox Code Playgroud)

恢复

我发现我无法成功挂载我的 ecryptfs。ls显示无效的权限/所有者/组设置。它看起来像下面这样:

total ??
d????-??-?  ?? ??      ??      ??   ??            .
d????-??-?   6 root    root    4.0K Jun 19 11:42  ..
d???------  ?? ??      ??      ??   ??            .aptitude
d????-??-?  ?? ??      ??      ??   ??            .autoenv
-??-?--?--  ?? ??      ??      ??   ??            .autoenv_authorized
d????-??-?  ?? ??      ??      ??   ??            .aws
-??-?--?--  ?? ??      ??      ??   ??            .bash_aliases
-??-------  ?? ??      ??      ??   ??            .bash_history
-??-?--?--  ?? ??      ??      ??   ??            .bash_logout
-??-?--?--  ?? ??      ??      ??   ??            .bashrc
d????-??-?  ?? ??      ??      ??   ??            bin
d????-??-?  ?? ??      ??      ??   ??            .cache
d????-??-?  ?? ??      ??      ??   ??            code
d????-??-?  ?? ??      ??      ??   ??            .config
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我在使用 时遇到了问题mount,所以我开始搞砸ecryptfs-recover-private并获得了一些运气。

同样,您必须使用自己从上面生成的密码。请注意,我在--rw这里使用了开关来使挂载读/写,如果省略开关,它将以只读方式挂载。

sudo ecryptfs-recover-private --rw /media/_UUID_/.ecryptfs/paulj/.Private

INFO: Found [/media/_UUID_/.ecryptfs/paulj/.Private].
Try to recover this directory? [Y/n]: Y
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n] Y
INFO: Enter your LOGIN passphrase...
Passphrase: 116b053e08564b53b2967e64e509bdc5
Inserted auth tok with sig [b69fed2a22932ba4] into the user session keyring
INFO: Success!  Private data mounted at [/tmp/ecryptfs.idv9OohY].
Run Code Online (Sandbox Code Playgroud)

tmp它输出的路径将包含您的加密安装。

ls -la /tmp/ecryptfs.idv9OohY
Run Code Online (Sandbox Code Playgroud)

这应该显示具有适当权限集的完整路径。现在把它复制到某个地方。

mkdir ~/Desktop/Recovered
sudo cp -Rv /tmp/ecryptfs.idv9OohY ~/Desktop/Recovered
Run Code Online (Sandbox Code Playgroud)

在结束

祝你好运!!

您应该能够将它用于 Ubuntu 的任何变体,例如,我已经在 Ubuntu 和 Mint 以及 Lubuntu 之间使用过它。

如果您只是找到此线程,除非您专门使用密码作为密码,否则这些十六进制值将不起作用。

  • 我会接受这个答案,因为它_似乎_包含确切的解决方案。我的密码实际上不是 _"password"_ 所以我的密钥会有所不同。唉,驱动器已经被格式化了,因为我放弃了寻找解决方案,所以它不再与我有太大关系。而且我已经学会了不要无缘无故地加密我的家庭驱动器:-) (3认同)
  • @paulj 你已经获得了 Ass Savior 徽章。 (2认同)