Cryptsetup luks - 检查内核是否支持 aes-xts-plain64 密码

Cryptsetup luks - 检查内核是否支持 aes-xts-plain64 密码

我在 CentOS 5 上使用 cryptsetup luks 加密对一堆硬盘进行了加密。一切都很好,直到我将系统升级到 CentOS 6。现在我无法再挂载磁盘了。

使用我的关键词进行安装:

sudo cryptsetup luksOpen /dev/sdc1 d2

我收到此错误:

device-mapper: reload ioctl on  failed: Invalid argument
Failed to setup dm-crypt key mapping for device /dev/sdc1.
Check that kernel supports aes-xts-plain64 cipher (check syslog for more info).
Failed to read from key storage.

在 /var/log/messages 中:

Feb  3 23:43:23 data kernel: device-mapper: table: 253:0: crypt: Device lookup failed
Feb  3 23:43:23 data kernel: device-mapper: ioctl: error adding target to table

关于如何安装,我有什么想法吗?

答案1

找到解决方案。

问题是驱动器使用大约 512 个字符长的交互式密钥加密(从密钥文件复制/粘贴)。出于某种原因,CentOS 6 中的新内核模块无法正确读取由旧版本创建的 512 个字符的加密密钥。似乎只影响不同版本的内核或 cryptsetup,因为在同一系统上创建和打开 512 个字符的密钥时会起作用。

总之...

内核 -> 创建 512 个字符的 luks 密钥 -> 可以在同一个内核中打开

旧内核 -> 创建 512 个字符的 luks 密钥 -> 无法在新内核中打开

512 个字符太长了。不确定阈值是多少,但我决定将密钥更改为 50 个字符,而且成功了。

为了解决这个问题,我重新安装了我以前使用的旧 CentOS 5 操作系统,使用了 cryptsetup luksAddKey,输入了原始的(长)512 个字符的密钥,并创建了一个长度为 50 个字符的新密钥。

然后我重新安装了 CentOS 6,并使用 50 个字符的密钥(不是原始密钥)成功地用 cryptsetup luksOpen 挂载了每个磁盘。

因此,给遇到类似错误的人一个提醒。如果您使用超长密钥加密驱动器,请更改为新内核或 cryptsetup,并在尝试使用 luksOpen 加密卷时收到内核模块错误,则您可能必须返回旧内核版本以使用 luksAddKey 并添加较短的密钥,然后再在新内核中使用。这可能是一个错误,或者是 LUKS 使用的内核模型中允许的最大交互密钥不匹配。

相关内容