我有一个Red Hat 6.5 Linux实现,它使用LUKS加密系统,并且 - 由于不相关的原因 - 我想在一段时间内“关闭”启动加密检查。它会在某个时候再次打开,所以即使可以完全删除LUKS加密,这也不是我感兴趣的解决方案。
我想要的是在启动时自动提供LUKS密码,这样就不需要手动输入 - 因此即使仍然实际启用了逻辑上“关闭”加密。
现在,虽然这对于辅助设备来说很简单,即。通过创建密钥文件,将密钥文件应用于加密设备并修改/ etc / crypttab以引用密钥文件,仍然必须在引导时输入至少一个密码 - 因为,如果主设备是LUKS加密的,那么它首先必须在/ etc / crypttab可访问之前解密。
我有一种方法可以删除输入初始密码的要求:
除了我不想要涉及可移动未加密设备外,这一切看起来都不错。我只是希望服务器启动,好像它没有加密一样。
我能看到实现此目的的唯一方法是将可移动未加密设备替换为普通未加密设备。在这种情况下,启动过程将读取正常未加密设备,获取密钥并使用它来解密加密设备...嘿presto加密被禁用。
我能在我的系统上找到的唯一能够满足正常未加密设备标准的设备是/ dev / sda1 ie。 / boot,所以我按照以下步骤3和步骤4执行了上述步骤:
不幸的是,我似乎无法让它发挥作用。
Red Hat启动并且我没有被要求输入密码(正如预期的那样),但是在启动过程结束时,它失败了“内核恐慌 - 没有同步:尝试杀死init!...” / p>
此行为与我使用的以下任何一项相同:
所以我的问题如下:
提前感谢任何帮助
答案 0 :(得分:6)
经过多次挖掘,我终于找到了答案(适用于CentOS 6.6和7)。特别感谢以下2个资源:
我所做的如下(以root用户身份):
# insert a password into my chosen password file
echo -n "anypassword" > /etc/mypasswdfile
# instruct the LUKS device to take the password from my password file
vi /etc/crypttab and replaced the 3rd parameter "none" with "/etc/mypasswdfile"
# add my password file as a valid key for the luks device
cryptsetup luksAddKey /dev/sda2 /etc/mypasswdfile
# configure dracut to add the following 2 items to the initramfs (so accessible at boot)
echo 'install_items="/etc/mypasswdfile /etc/crypttab"' > /etc/dracut.conf.d/99-mypwfile.conf
# instruct dracut to apply the configuration
dracut -f
# reboot the server
reboot
就是这样。服务器在不请求密码的情况下重新启动。 (可以通过cryptsetup命令从LUKS设备删除/添加密钥文件来禁用/启用此功能)
答案 1 :(得分:0)
我从来没有需要这个,但肯定与它的用处有关。所以,你的帖子促使我回顾一下如何做到这一点,我看到的唯一方法就是将解锁脚本/细节放到initramfs中。
在基于debian的发行版中这是一个更容易的过程,因为可以通过initramfs-tools在启动时动态地将脚本注入到initramfs中。请参阅this和this以及this
基于RHEL的发行版需要使用dracut(在恢复模式下)来重建initramfs。所以,我认为你可以通过重建initramfs并在其中注入解锁脚本来解决这个问题。这样我们可以确保你的root / boot设备在内核需要挂载之前已经解锁了。这个Gentoo thread提供了一种获取和修改initramfs内容的方法。至于在initramfs中注入解锁脚本的最佳方法,我不确定。
当我不那么忙的时候,我肯定会去做。能够进行设置确实听起来很有用。