LUKS是Linux的磁盘加密。首次使用LUKS加密分区时(或在OS安装过程中选择加密磁盘选项时),您必须指定在打开LUKS分区时将使用的密码。但是,此后,您可以根据需要安装和卸载分区多次,而无需输入密码,直到重新引导系统。想象以下两种情况:出于安全合规的目的,您需要经常更改LUKS加密密码。在这种情况下,您必须旋转LUKS键而不破坏已安装的分区。
您忘记了LUKS密码。或者,您从某人继承了具有LUKS加密的已挂载分区的系统。您没有LUKS密码。重新启动系统时,您将遇到麻烦,因为您没有LUKS键。
在本教程中,我们将讨论您需要了解的有关LUKS密钥管理的所有信息。
1.八个LUKS钥匙槽
在LUKS中,对于单个加密分区,可以有八个不同的密钥。您可以选择一个分区上只有一个键,也可以分配所有八个不同的键。
八个不同密钥中的任何一个均可用于打开加密分区。
这些密钥存储在分区的LUKS密钥槽中。因此,一个分区将有8个键槽。
要查看所有密钥槽,请使用cryptsetup luksDump,如下所示。在此示例中,它仅使用两个插槽。
在上面:
/ dev / sdb1是LUKS加密的分区。
密钥插槽号从0开始。由于我们有8个插槽,因此密钥插槽号从0到7开始。
ENABLED表示已为此特定插槽分配了密钥。
在这里,我们有两个带有LUKS键的插槽。因此,/ dev / sdb1 LUKS加密分区分配了两个密钥。
2.添加新的LUKS密钥
要将新的LUKS密码(LUKS密钥)添加到/ dev / sdb1 LUKS加密分区,请使用cryptsetup luksAddKey命令,如下所示。
在上面:
输入现有密码后,即可分配新的LUKS密钥。
当显示“输入任何密码:”时,您应该输入/ dev / sdb1的任何现有密码。正如我们在上面看到的,它已经有两个来自插槽0和插槽1的密码。您应该首先输入这些密码中的任何一个。
每当您添加新的LUKS密钥时,它将被添加到下一个可用插槽中。由于我们已经有两个现有密钥,因此将新密钥添加到插槽2中,这是下一个可用插槽。
因此,插槽0到2会显示“已启用”。我们在/ dev / sdba1上有三个LUKS键。
3.将新的LUKS密钥添加到特定的插槽
您也可以将新密钥添加到特定的插槽中,而不是LUKS将新密钥添加到下一个可用插槽中。
在此示例中,我们将新的LUKS密钥添加到插槽5。我将新密码分配为:PasswordforSlot5。为此,请使用cryptsetup luksAddKey中的-S选项,如下所示。
4.删除现有的LUKS密钥
要从LUKS分区中删除现有密钥,请使用cryptsetup luksRemoveKey,如下所示。
从插槽中删除/擦除/删除LUKS密钥。您无需指定插槽号。而是指定要删除的密钥!。
在此示例中,您只需输入要删除的密码(密钥)。
在此示例中,当提示“输入要删除的LUKS密码:”时,我输入了在上一个示例中创建的密钥:PasswordforSlot5
5.使用luksKillSlot删除LUKS密钥
如果您没有特定插槽的密钥,而只想删除它,则可以使用cryptsetup luksKillSlot命令来完成,如下所示。
在此示例中,我们将从LUKS插槽2中删除密钥。
为此,您必须为任何一个插槽输入LUKS键。这仅是在从插槽2中删除密钥之前进行的验证。
6.从文件添加新的LUKS密钥
您还可以根据已经具有的密钥文件添加新的LUKS密钥,如下所示。
7.重置忘记的LUKS密钥-获取现有密钥
如果您由于忘记了LUKS密码而重新启动了服务器,但又无法挂载加密的LUKS分区,那么您就不走运了,可以重置它。
但是,如果已打开加密的LUKS分区,并且尚未重启系统,并且忘记了已安装分区的LUKS密码(至少LUKS自上次重启以来已打开一次),则可以分配一个新的LUKS密钥。
在这种“忘记我的LUKS密码”方案中,您可以执行以下两个步骤:
从LUKS分区中提取当前的加密密钥
使用上面提取的加密密钥创建一个新的LUKS密钥
在此示例中,我安装了/ home1分区,这是LUKS加密的分区,但是我没有密码。