我一直在尝试寻找最小的软件包,将其放在 CD/U盘上,这样我就可以在有线联网的计算机上使用 ssh 客户端。我说的是真正最基本的东西,没有花哨的 shell 或浪费的内核模块,只有一个 SSH CLI。
由于显然没有人费心制作可启动的 SSH 客户端(根据我在谷歌上能想到的所有单词排列组合),我能想到的最好的办法是自己重新制作 TinyCore,将 gcc-libs、openssl 和 openssh 打包到 initrd 中。可以说,使用 TinyCore 的 tcz 包可能会稍微小一些,但这只是启动时的额外工作。我希望大小和启动时间都小一些。ISO 最终刚好超过 11MB。
我仔细检查了文件系统,想找到可以删除的东西,但我不确定是否找到了什么明显的解决办法。我可以删除驱动程序、内核模块,甚至内核代码、库和实用程序,但我不知道哪些可以删除,哪些是启动和运行 ssh 所必需的。对 openssh 进行一些简单的修改,就可以将其用作默认用户 shell,从而无需单独的 shell 和(希望)busybox。
所以我想我的问题可以分为两个:
除了内核之外,进入 SSH 客户端还需要什么?
您是否知道比我的 TinyCore 重制版更小、更快的进入 SSH 客户端的方法?
答案1
我认为一个非常精简的版本忙碌箱(只需一个基本 shell 和一些您可能需要的网络配置工具来设置网络)加上 dropbear 作为 ssh 客户端(静态链接)将远低于您提到的 11mb。我认为大约 1-2mb 就足够了,但您可以进一步减少。另外添加一个最小内核。
当然,这有点取决于你的 arch 等等(例如,我这里的 MIPS 系统静态链接的 dropbear 大约是 200kb,而基本的 busybox 可能很容易容纳 500kb 左右)。