首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在基于Debian的操作系统上防止密码密码两次引导提示

在基于Debian的操作系统上防止密码密码两次引导提示
EN

Unix & Linux用户
提问于 2022-09-07 22:20:11
回答 1查看 663关注 0票数 2

我的一位朋友在没有系统的情况下使用全磁盘加密(包括与/使用LVM位于同一个分区上的/boot )运行Debian。启动时会提示她两次输入加密密码:一次由grub提示,另一次由内核提示。我们的目标是让她只被提示一次。

我发现了一个适用于基于Arch的GNU/Linux的本指南,它声称可以克服这个问题。但是它不适用于基于Debian的GNU/Linux,因为至少其中一个包有点不同。指南的第11章解释了如何在驱动器解锁后创建内核可以使用的密钥文件。这样,用户就会被提示一次。如何将这些步骤转换为基于Debian的发行版?以下是指南。

指南

启动并以root用户或用户身份登录。然后生成密钥文件:

代码语言:javascript
复制
# dd bs=512 count=4 if=/dev/urandom of=/etc/mykeyfile iflag=fullblock

将其插入LUKS卷:

代码语言:javascript
复制
# cryptsetup luksAddKey /dev/sdX /etc/mykeyfile

当出现提示时,...and将输入您的LUKS密码。编辑/etc/mkinitcpio.conf以将键包含在文件数组中。

代码语言:javascript
复制
FILES="/etc/mykeyfile"

从头创建initramfs映像:

代码语言:javascript
复制
# mkinitcpio -p linux-libre
# mkinitcpio -p linux-libre-lts
# mkinitcpio -p linux-libre-hardened

在您的grub.cfg中的内核(linux)行中添加以下内容--您现在知道要这样做了,请参阅上面!--例如,如果您遵循了本指南,则在root=/dev/matrix/rootvol之后:

代码语言:javascript
复制
# cryptkey=rootfs:/etc/mykeyfile

最后,拒绝对密钥文件的读取访问,即使是根用户:

代码语言:javascript
复制
# chmod 000 /etc/mykeyfile
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-09-08 06:52:20

至少在Debian 11上,如果您安装了cryptsetup-initramfs包,它的/usr/share/initramfs-tools/hooks/cryptroot脚本将解析您的/etc/crypttab,如果我正确地读取该脚本,它将自动检测您的根文件系统是否位于应该由密钥文件解锁的加密容器上,并且将自动将密钥文件包含到initramfs。

因此,在完成cryptsetup luksAddKey步骤之后,Debian11等效于确保安装了cryptroot-initramfs包,将密钥文件定义添加到根文件系统的/etc/crypttab行中,就像您为一些非根文件系统设置一个LUKS容器一样。

使用与示例中相同的名称,crypttab行如下:

代码语言:javascript
复制
sdX_crypt /dev/sdX /etc/mykeyfile luks

或者更确切地说,您应该使用LUKS卷的UUID来实现健壮性:

代码语言:javascript
复制
sdX_crypt UUID=... /etc/mykeyfile luks

然后运行update-initramfs -u -k all

sdX_crypt是映射设备的名称,一旦加密被解锁,它将用于访问加密的内容。Debian将默认使用加密设备的basename并添加_crypt后缀来创建映射设备名,但我相信它也可以定制。

由于您的朋友使用LVM,您需要运行lsblk并查看用于根文件系统和/boot文件系统的LVM设备的NAME列:这些名称将是表单VGname-LVname。您将需要VGname部件,然后以根用户身份运行pvs,并找到包含命名VG的PV的名称。这应该类似于/dev/mapper/sdX_crypt

钩子脚本将由update-initramfs执行。它将从/etc/crypttab获取信息,并自动添加密钥文件和必要的脚本片段,以便将其使用到initramfs中。

您不需要添加引导选项--自动生成的initramfs脚本将包含它所需的所有参数。

当然可以使用链接您在评论中发布的,但是您确实应该使用这个crypttab(5)您的发行手册页来获取最准确的信息。

/etc/mykeyfile的保护设置为chmod 600或更少是个好主意。我不确定设置chmod 000是否有任何用处,但您可以尝试;最坏的情况是,您只需要在下次启动时输入两次加密密码,然后重新调整权限并再次运行update-initramfs -u -k all

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/716531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档