cryproot-unlock 与 dropbear:等待 askpass 时超时

cryproot-unlock 与 dropbear:等待 askpass 时超时

我在 VPS 上安装了 Debian 9,并将根分区配置为加密。但是,由于安装程序在尝试加密时出现问题,因此我不得不手动执行此操作。

为了能够在启动期间通过 SSH 解锁根分区,我还使用 安装dropbear-initramfs并更新了 initramfs update-initramfs -u。启动时,我现在能够连接到服务器dropbear

登录过程cryptroot-unlock(通过 SSH 登录时自动调用)失败并显示以下错误消息:

Error: Timeout reached while waiting for askpass.

并关闭连接。

我在网上没有找到关于这个确切的错误信息的任何信息,并试图确保我没有犯任何配置错误,但到目前为止似乎没有任何帮助。

目前,我能够使用救援实时系统 chroot 进入系统;我该怎么做才能修复这个错误?

答案1

我自己能够解决这个问题,但也许其他人也会遇到同样的问题,所以我将在这里发布解决方案:

事实证明,我的/etc/crypttab有语法错误,导致askpass(除其他外)在运行时未包含在 initramfs 中update-initramfs -u

对我来说,将每个单独的逻辑卷添加到卷组中就足够了,/etc/crypttab而不是将整个卷组添加到卷组中。以下是示例:

#name       underlying device       passphrase  cryptsetup options
vg-root     /dev/mapper/vg-root     none        luks,retry=1
vg-swap     /dev/mapper/vg-swap     none        luks,retry=1

再次更新 initramfs 后,您的系统应该在启动时要求输入逻辑卷密码,然后恢复正常启动。

答案2

写这篇文章是因为我在尝试解决同一问题时发现了这个帖子卡利Linux

特别是在 Kali 上,默认安装了一个软件包cryptsetup-nuke-password。它将 /lib/cryptsetup/askpass 替换为一个脚本,该脚本调用原始的“askpass”二进制文件并将 askpass 重命名为 /lib/cryptsetup/askpass.cryptsetup (看这里), 使用时会导致完全相同的错误cryptroot-unlock

Error: Timeout reached while waiting for askpass.

一种可能的解决方案是编辑/usr/share/cryptsetup/initramfs/bin/cryptroot-unlock指向/lib/cryptsetup/askpass.cryptsetup而不是/lib/cryptsetup/askpass

ASKPASS=/lib/cryptsetup/askpass.cryptsetup

相关内容