系统相关
首页 > 系统相关> > linux – 使用单个密码短语在启动时解锁多个加密磁盘

linux – 使用单个密码短语在启动时解锁多个加密磁盘

作者:互联网

我的机器有一个SSD,我安装了系统和一个硬盘,我用它作为大型和/或不常用文件的存储.两者都是加密的,但我选择使用相同的密码短语. SSD安装在/ usd / hdd的/和HDD上(每个用户都有一个目录,并且可以从主目录中按照他们的喜好进行符号链接).

当系统启动时,它会立即询问SSD的密码短语,几秒钟之后就会发送一个用于HDD的密码短语(它是自动挂载的).鉴于两个密码都是相同的,有没有办法配置系统只询问一次?

解决方法:

基于Debian的发行版:

Debian和Ubuntu使用cryptsetup软件包发送密码缓存脚本decrypt_keyctl.

decrypt_keyctl脚本为多个加密的LUKS目标提供相同的密码,使您无需多次键入.它可以在crypttab中使用keyscript = decrypt_keyctl选项启用.相同的密码用于密钥文件字段中具有相同标识符的目标.一次询问每个标识符的启动密码.

示例crypttab:

<target>      <source>         <keyfile>      <options>
part1_crypt   /dev/disk/...    crypt_disks    luks,keyscript=decrypt_keyctl
part2_crypt   /dev/disk/...    crypt_disks    luks,keyscript=decrypt_keyctl

更新加密选项卡后,还必须更新initramfs以应用更改.使用update-initramfs -u.

decrypt_keyctl的完整自述文件位于/usr/share/doc/cryptsetup/README.keyctl

不幸的是,由于a bug(其他初始化系统应该不受影响),这目前在使用systemd init的Debian系统上不起作用. Debian crypttab man page建议使用initramfs选项强制在initramfs引导阶段进行处理.

不提供decrypt_keyctl脚本的发行版:

如果您的发行版未提供decrypt_keyctrl,则可以使用加密根文件系统中的密钥文件解锁设备.这可以在任何其他加密设备之前解锁和安装根文件系统.

LUKS支持多个密钥槽.如果密钥文件不可用/丢失,这允许您使用密码解锁设备.

>使用随机数据生成密钥,并将其权限设置为所有者只读,以避免泄漏.请注意,密钥文件需要位于首先解锁的根分区上.

dd if=/dev/urandom of=<path to key file> bs=1024 count=1
chmod u=rw,g=,o= <path to key file>

>将密钥添加到LUKS设备

cryptsetup luksAddKey <path to encrypted device> <path to key file>

>配置crypttab以使用密钥文件.第一行应该是根设备,因为设备的解锁顺序与crypttab中列出的顺序相同.使用密钥文件的绝对路径.

<target>      <source>         <keyfile>                  <options>
root_crypt    /dev/disk/...    none                       luks
part1_crypt   /dev/disk/...    <path to key file>         luks

标签:linux,cryptsetup,disk-encryption
来源: https://codeday.me/bug/20190809/1628628.html