我正在寻找非交互式方式来解密根文件分区和下次系统重新启动时使用 LUKS 加密的交换分区。除此之外,我需要一种在重新启动后撤消它的方法,以便在再次重新启动后再次需要密码(甚至是新密码)。
系统使用LVM。
我不想在系统上输入密码,或者使用不同的系统来解锁它,它必须自己解锁一次。
我有它加密的密码,并且愿意将它以明文形式保存在硬盘上。我不关心这一步的安全性。
我有一个部署 Ubuntu 的流程,它基于带有自定义预置和 kickstart 文件的 Ubuntu 服务器安装,kickstart 安装一个在第一次重新启动(并且仅第一次重新启动)后运行的服务,然后再次重新启动。我正在尝试在此流程中实现 LUKS 磁盘加密,但我需要它保持非交互性,因此它必须能够在没有密码的情况下首次重新启动。
安装时设置的密码是临时的,会被第一次重启后运行的服务更改,所以第一个密码可以明文存储。
我已经做了我相当多的谷歌搜索来尝试解决这个问题,我发现的大部分内容都指向一个交换 initramfs 文件的解决方案。
我找到了多个资源来解释如何使用它来允许远程解锁系统,但我需要在没有交互的情况下进行。这是一个这样的资源:https : //hamy.io/post/0005/remote-unlocking-of-luks-encrypted-root-in-ubuntu-debian/
我认为我找到的最接近解决方案的是这个资源,它被认为是一种实现我想要的 VPS 解决方案的方法,但它只是一堆没有解释的命令,我不知道如何调整它:https : //dradisframework.com/pro/support/guides/customization/auto-unlock-luks-encrypted-drive.html
我还为 ArchLinux https://wiki.archlinux.org/index.php/Dm-crypt/System_configuration#cryptkey找到了这个资源,我尝试添加内核参数,但我也没有任何运气。不知道是不是因为LUKS不支持这些内核参数。
每当您挂载 LUKS 加密磁盘时,Ubuntu 都会为您提供 3 个选项:
我想知道如何在选择“永远记住”后重置此选择,并使窗口再次出现。
我使用LUKS + 密码设置了我的外部驱动器。我想增加密码+密钥文件的安全性。对于内部存储,这似乎 微不足道,但我不确定如何为外部驱动器解决这个问题。/dev/sdX对于外部驱动器来说似乎是一个糟糕的选择,我找不到 USB 驱动器的 UUID。
我试过了:
blkid - 这为本地 LUKS 驱动器提供了 UUID,例如`/dev/sdc1',但不适用于任何带有 LUKS 的外部驱动器sudo dmsetup deps -o devname返回的驱动器,例如(sde)和(sdc1),但没有UUID。cat /proc/mounts 给了我 LUKS 映射器的安装位置,但没有更详细的信息。/dev/mapper该lsbslk输出确实给UUID,但它是不平凡的解释:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT NAME MOUNTPOINT UUID
sda 8:0 0 477G 0 disk sda
??sda1 8:1 0 512M 0 part /boot/efi ??sda1 /boot/efi F2BB-F970
??sda2 8:2 0 412,5G 0 part / ??sda2 …Run Code Online (Sandbox Code Playgroud)