使用LUKS2加密分区的现有密钥文件添加新的LUKS密码短语或密钥

Wildnux

我的笔记本电脑中有两个分区,其中EFI/boot驻留在第一个分区上,其余Linux目录(包括root)驻留在第二个分区中,第二个分区使用dm-crypt和LUKS2加密

/dev/nvme0n1p1: UUID="7AF4-D518" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="4679ac1e-34a2-4ef8-aa7b-3d650ed32cca"
/dev/nvme0n1p2: UUID="440abce6-d1ac-41de-8ae1-ebaefa51823c" TYPE="crypto_LUKS" PARTLABEL="Linux filesystem" PARTUUID="9bc4085a-05ce-41dc-9b4e-ed75c5901965"

我具有无需使用口令即可自动解密的启动项(我使用USB,但是在USB开始发出问题之后,我已经存储并使用了EFI分区本身中的密钥文件)。我的启动项位于/boot/loader/entries/arch-zen-auto.conf

title Arch Linux (Zen) Auto
linux /vmlinuz-linux-zen
initrd /intel-ucode.img
initrd /initramfs-linux-zen.img
options cryptdevice=UUID=440abce6-d1ac-41de-8ae1-ebaefa51823c:luks:allow-discards cryptkey=/dev/disk/by-uuid/7AF4-D518:vfat:keyfile root=/dev/mapper/luks rootflags=subvol=@ rd.luks.options=discard rw mem_sleep_default=deep

因此,我可以引导和使用我的系统而无需提供密码。几个月后,我忘记了密码:(。我也找不到标题备份。

有没有一种方法可以使用我在EFI分区中拥有的现有密钥文件添加另一个密码短语,而无需使用我忘记的密码短语?自从忘记了原始密码后,我有什么选择?

我试图使用现有的密钥文件打开分区,即使不起作用:

x1# cryptsetup luksOpen /dev/nvme0n1p2 test --master-key-file /dev/disk/by-uuid/7AF4-D518
Volume key does not match the volume.

# or

x1# cryptsetup luksOpen /dev/nvme0n1p2 test --master-key-file /boot/keyfile
Volume key does not match the volume.

我的,/etc/fstab如果有帮助,无论如何:

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/luks UUID=50d843f7-2f8e-4c56-ac3d-0b5a7d35110e
/dev/mapper/luks        /               btrfs           rw,noatime,nodiratime,compress=lzo,ssd,space_cache,subvolid=256,subvol=/@,subvol=@     0 0

# /dev/nvme0n1p1 UUID=7AF4-D518
/dev/nvme0n1p1          /boot           vfat            rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro      0 2

# /dev/mapper/luks UUID=50d843f7-2f8e-4c56-ac3d-0b5a7d35110e
/dev/mapper/luks        /home           btrfs           rw,noatime,nodiratime,compress=lzo,ssd,space_cache,subvolid=257,subvol=/@home,subvol=@home     0 0

# /dev/mapper/luks UUID=50d843f7-2f8e-4c56-ac3d-0b5a7d35110e
/dev/mapper/luks        /data           btrfs           rw,noatime,nodiratime,compress=lzo,ssd,space_cache,subvolid=259,subvol=/@data,subvol=@data     0 0

# /dev/mapper/luks UUID=50d843f7-2f8e-4c56-ac3d-0b5a7d35110e
/dev/mapper/luks        /var            btrfs           rw,noatime,nodiratime,compress=lzo,ssd,space_cache,subvolid=258,subvol=/@var,subvol=@var       0 0

我在所有行中都加了注释,/etc/crypttab所以那里什么也没有。

我尝试过的方法(一些对我没有帮助的LUKS(不是LUKS2)相关信息):

AB

使用 --key-file

根据手册

luksAddKey <设备> [<具有新密钥的密钥文件>]

添加一个新的密码短语。现有的密码必须以交互方式或通过提供--key-file可以交互方式指定要添加的新密码,也可以从位置参数给定的文件中读取。

您应该使用以下命令:

cryptsetup luksAddKey --key-file /boot/keyfile --verify-passphrase /dev/nvme0n1p2

注意:--master-key-file表示内核用于进行实际加密/解密的最终对称密钥,并且始终以受保护的形式存储,应谨慎处理。该主密钥以前可以dmsetup table --showkeys与LUKS1一起从内核的设备映射器中检索,但是在内核> = 4.10上运行的LUKS2(除非使用--disable-keyring打开时不再可用:该条目现在是一个仅写的内核密钥环名称密钥环的内容由内核的设备映射器使用,但不适用于用户空间,root包括在内。因此,如果所有密码短语/密钥文件都丢失了,并且没有较旧的LUKS标头转储且具有以前已知的密码短语/密钥文件可用,那么即使LUKS2卷仍处于打开状态,似乎也没有办法恢复主密钥(但如果已打开,其数据仍可用于紧急备份)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用从密码派生的密钥正确加密和解密文件

Ansible身份验证,使用带有密码短语的密钥

解析XML文件并基于现有密钥添加新密钥

使用带有128位密钥的AES和PBKDF2的Java密码体系结构进行文件加密

LUKS将密钥文件存储在加密的USB驱动器中

我可以将LUKS分区从密码短语迁移到密钥文件吗?

我怎么知道LUKS是使用密码短语还是密钥文件进行身份验证?

扩展luks加密分区

检查ssh密钥是否有密码短语

NTFS分区的LUKS加密

GPG仅使用密码短语加密文件(无需密钥存储)

在没有root用户访问权限的情况下使用密钥文件解锁LUKS分区?

使用gpg加密密钥文件在LUKS内的LVM上启动Gentoo

用LUKS加密现有磁盘吗?

使用相同的密钥文件/密码对两个不同的分区进行加密是否安全?

如何添加新的物理卷以扩展现有的LUKS加密的lvm(卷组)并维护加密?

使用现有DER / PEM密钥的Javascript中的RSA加密

将LUKS2转换回LUKS版本1

如何挂载和解密LUKS加密分区以恢复文件

LUKS加密密钥的强度直接取决于密码吗?

使用extundelete从luks分区中恢复文件

无法将LUKS密钥添加到加密交换

使用luks cryptsetup加密多个分区

如果我有luks标头备份,安装时是否需要提供加密密码短语?

如何验证LUKS主密钥?

将 LUKS 加密分区移动到另一个系统并能够使用相同的密码短语是否安全?

如何在 GParted 中创建新的加密 LUKS 分区?

带有新创建的 DM-CRYPT / LUKS 分区的“此密码短语无可用密钥”

如何在 LUKS2 + LVM2 分区内使用 kexec 链式加载另一个内核?