我正在 initramfs 中启动 dropbear ssh 服务器,以便能够通过 SSH 解锁加密分区*。
在 Debian Jessie 中,一切都很好,但在 Buster 中,dropbear 似乎并没有在 后停止switch_root
,这会阻止 OpenBSD ssh 服务器启动。
apt-get purge dropbear
没有帮助并且which dropbear
打印/usr/bin/dropbear
和ps -ef | grep dropbear
打印/sbin/dropbear
;这表明该进程是在 initramfs 阶段启动的,并且没有停止。
作为一种解决方法,我killall dropbear
在 SSH 服务脚本中执行此操作,但在切换根分区之前将其终止会更合适。
此时我该如何运行该脚本?
答案1
创建清理脚本如下/etc/initramfs-tools/scripts/init-bottom/cleanup.sh
:
#!/bin/sh
echo "Killing dropbear"
killall dropbear
exit 0
...并使其可执行:
chmod +x /etc/initramfs-tools/scripts/init-bottom/cleanup.sh
像往常一样更新 initramfs:
update-initramfs -u
答案2
您已经有一个调用 switch_root 的脚本,因此只需在其中插入一行即可停止 dropbear。
您还可以从 ssh 连接中停止它。一登录就有两个dropbear进程。第一个是接受新连接的进程,第二个是为您的连接提供服务的进程。此时您可以终止第一个进程,因为您不需要多个连接。一旦断开连接,第二个进程将终止。
在启动过程的早期阶段,您可以确定接受新连接的进程具有较低的进程号,尽管还有其他方法可以识别它。