Luks,ssh 解锁,奇怪的行为,无效的authorized_keys 文件

Luks,ssh 解锁,奇怪的行为,无效的authorized_keys 文件

我不知道为什么,但我无法跟上这些说明在我的 Debian 稳定版上。安装 dropbear 和 busybox 后,我尝试运行initramfs -u.我收到一个奇怪的警告:

# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.9.0-4-amd64
dropbear: WARNING: Invalid authorized_keys file, remote unlocking of cryptroot via SSH won't work!

然后,我尝试查看该文件,但initramfs 文件夹中/etc/initramfs-tools/root/.ssh/id_rsa没有文件夹。root我也尝试过跑步

dropbearkey -t dss -f /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key

但没有文件夹/etc/initramfs-tools/etc/,所以这个命令也失败。当然,我可以创建这些文件夹,但恐怕这种奇怪的行为并不是来自更深层次的错误。如果有帮助,这里是 initramfs 文件夹的内容:

me@server:/etc/initramfs-tools# ls
conf.d  hooks  initramfs.conf  modules  scripts  update-initramfs.conf

谢谢你!

答案1

感谢#debian 上的一些帮助,我终于找到了解决方案。在最近的 Debian 上,该过程似乎有很大不同。这是新的:

首先确保dropbeardropbear-initramfs已安装

sudo apt install busybox dropbear*

~/.ssh/id_rsa.pub然后在文件中添加您的公钥(大多数情况下)(编辑:显然在最近的 dropbear 上,根据下面 Peter Schilling 的回答,/etc/dropbear-initramfs/authorized_keys该文件现在位于其中)。/etc/dropbear/initramfs/authorized_keys

然后更新initramfs以考虑更改: : update-initramfs -u

就这样!

请注意,如果您想避免dropbear和之间的密钥发生冲突openssh(它们共享相同的 ip,但使用不同的密钥),您可能需要在客户端中添加~/.ssh/config类似的内容:

Host myserver_luks_unlock
     User root
     Hostname <myserver>
     # The next line is useful to avoid ssh conflict with IP
     HostKeyAlias <myserver>_luks_unlock
     Port 22
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/id_rsa

然后,您只需使用以下命令进行连接:

ssh myserver_luks_unlock

一旦出现提示,请按照 busybox 文本的建议键入:

cryptroot-unlock

享受!

答案2

只是一些进一步的细节。

首先,如果您的 ssh 客户端还没有私钥/公钥对,您需要使用 生成它ssh-keygen,如图所示这里

其次,我会指出您需要:

添加您的客户的文件 /etc/dropbear-initramfs/authorized_keys 中的公钥(大多数时候 ~/.ssh/id_rsa.pub)在服务器上

就是这样。在客户端:

c_user@client:~$ scp .ssh/id_rsa.pub s_user@server:id_rsa.pub

在服务器上:

s_user@server:~$ sudo sh -c "cat id_rsa.pub >> /etc/dropbear-initramfs/authorized_keys"
s_user@server:~$ rm id_rsa.pub

最后,连接到服务器非常重要(即使 root 帐户被禁用)。

答案3

对于像我这样的人来说,几年后发现这个问题很有用,更新: 托比亚斯博拉的回答增强了solitone 的回答仍然有效,除了在较新版本的 Dropbear 中,密钥文件应位于

/etc/dropbear/initramfs/authorized_keys

代替

/etc/dropbear-initramfs/authorized_keys

相关内容