在命令中输入正确的密码后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)
--> 鉴于我绝对确定我输入了正确的密码,我该怎么做才能解决这个问题,以便我可以读取加密的主文件夹?
一些背景:
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 之间使用过它。
如果您只是找到此线程,除非您专门使用密码作为密码,否则这些十六进制值将不起作用。