我已经关注了这个问题https://unix.stackexchange.com/questions/5017/ssh-to-decrypt-encrypted-lvm-during-headless-server-boot并成功远程解密了我的根驱动器。但是,我还有第二个驱动器,我也已经加密了,不幸的是 dropbear 在显示第二个驱动器的第二个密码提示之前被启动过程杀死,并且主要的 open-ssh 服务器尚未启动,因此无头系统再次位于无限期地等待输入。
有没有办法解决这个问题?
第二个驱动器将用于私有云数据存储,因此需要加密以保护数据,并且需要在云服务启动之前进行解密(我还没有选择或安装)。
Ubuntu 13.10 x64 服务器无头运行,虽然我并不完全依赖于 Ubuntu,但它有点方便。
解决此问题的最简单方法是通过运行将第一个分区的派生密钥添加到第二个磁盘:
/lib/cryptsetup/scripts/decrypt_derived sda1_crypt > new_key_file
cryptsetup luksAddKey /dev/sdb1 new_key_file # prompts for an existing key
shred -u new_key_file # remove the key file
Run Code Online (Sandbox Code Playgroud)
然后将sdb1_crypt/etc/crypttab 中的行替换为:
sdb1_crypt /dev/sdb1 sda1_crypt \
luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
Run Code Online (Sandbox Code Playgroud)
这样,只要第一个磁盘可用,就可以自动挂载第二个磁盘。
当然,您需要使用您使用的正确分区/标签替换sda1和sdb1并且不要忘记update-initramfs -u在更改后运行并将相应的条目添加到/etc/fstab.