编辑:

编辑:

我可以将 dropbear 安装到 initramfs 中,并my_initramfs_ip在启动阶段成功连接到此 ssh 服务器(IP: ),如所述这里

现在我想在同一阶段作为客户端执行端口转发。为此,我dbclient在 initramfs 中安装了 dropbear ssh 客户端 ( ),为了检查它是否正常工作,我尝试在 initramfs 中连接到我的其中一台服务器:

initramfs# dbclient user@myserver
user@myserver password: ...

它运行正常,我可以登录myserver。现在我想执行端口转发,就像我通常在实际系统启动时所做的那样:

initramfs# dbclient -R 1234:localhost:22 myserver_ip 

但是当我尝试通过以下方式连接时,端口转发根本不起作用:

myserver$ ssh root@localhost -p 1234

出现错误:

ssh_exchange_identification: read: Connection reset by peer

那么,如何在启动阶段进行端口转发?

编辑:

我尝试将在成功执行反向端口转发时打开的库文件添加dbclient到 initramfs 中以防万一:

myserver$ strace dbclient -R 7000:localhost:22 [email protected] 2>&1 | grep open | grep lib | sed 's/open("//' | sed 's/",.*//'
[email protected]'s password: 
/lib/x86_64-linux-gnu/libutil.so.1
/lib/x86_64-linux-gnu/libz.so.1
/lib/x86_64-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libnss_compat.so.2
/lib/x86_64-linux-gnu/libnsl.so.1
/lib/x86_64-linux-gnu/libnss_nis.so.2
/lib/x86_64-linux-gnu/libnss_files.so.2

...但没有成功。

答案1

主机上的环回接口可能已关闭initramfs。也许您只需要

ifconfig lo up

(灵感来自这个关于Unix&Linux SE的答案)。

相关内容