Que*_*low 16 linux encryption luks
我尝试使用以下命令在我的主目录中删除 LUKS 加密:
cryptsetup luksRemoveKey /dev/mapper/luks-3fd5-235-26-2625-2456f-4353fgdgd
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误说:
设备 /dev/mapper/luks-3fd5-235-26-2625-2456f-4353fgdgd 不是有效的 LUKS 设备。
很困惑,我尝试了以下方法:
cryptsetup status luks-3fd5-235-26-2625-2456f-4353fgdgd
Run Code Online (Sandbox Code Playgroud)
它说:
/dev/mapper/luks-3fd5-235-26-2625-2456f-4353fgdgd is active and is in use.
type: LUKS1
cipher: ...
Run Code Online (Sandbox Code Playgroud)
加密设备似乎处于活动状态,但无效。这里可能有什么问题?
Mat*_*nco 18
cryptsetup luksRemoveKey
如果您有多个加密密钥,则只会删除加密密钥。加密仍然存在。
Fedora Installation_Guide Section C.5.3 解释了如何luksRemoveKey
工作。
在保留内容的同时删除加密是“不可能的”只是一个有根据的猜测。我基于两件事:
小智 13
首先,当从 LUKS 分区中删除密码短语时,您需要指定它所在的磁盘分区,例如:
cryptsetup luksRemoveKey /dev/sda2
Run Code Online (Sandbox Code Playgroud)
当您需要 LUKS 加密设备的状态时,您需要像以前一样引用 LUKS 名称。
但是 luksRemoveKey 只删除密码短语之一(而不是最后一个)。如果要永久解密,则必须使用 cryptsetup-reencrypt:
cryptsetup-reencrypt --decrypt /dev/sda2
Run Code Online (Sandbox Code Playgroud)
删除键槽就像忘记密码一样,它与移动其中的文件系统替换 LUKS 设备无关。
您可以无损地从设备中删除 LUKS 加密,而无需备份、重新格式化和恢复。. cryptsetup
自 2012 年发布的 1.5.0 版以来一直支持此功能。
成功解密 LUKS 设备后,内部文件系统可供操作系统使用,您可以直接挂载它。
警告:这很危险,请先备份所有数据。
对于 LUKS1:
对于 LUKS2:
cryptsetup luksChangeKey --pbkdf pbkdf2 <device_path>
cryptsetup convert --type luks1 <device_path>
我已经测试了这两个并且它们有效。
当前版本的 cryptsetup 声称支持直接解密 LUKS2 设备。这个命令是cryptsetup --reencrypt --decrypt --header HEADER_FILE <device_path>
. 该--header
参数是必需的,因为这些命令假定您的设备使用分离的标头。如果你这样做了,它就可以工作,甚至可以在线进行解密。如果您不使用分离的标头(很常见),并且您尝试提供标头的转储,或将块设备本身作为--header
值传递,cryptsetup
则会安静地进行,当它完成时,您最终会得到没有键槽的 LUKS2 设备,您的数据将消失。这是从 2.3.3 (2020) 版本开始的,在未来的版本中可能会发生变化。
我的建议是使用更安全的 LUKS2->LUKS1->Decrypt 路径,我可以确认它可以完成这项工作。