- 可以确定的是在我把 openssh 编译进文件系统之后出现的这个现象.
- 发现是在 rcS 脚本启动 SSH 服务的时候卡住的
- 在这之前能直接进入系统,但是也会出现 random: nonblocking pool is initialized
这个 random: nonblocking pool is initialized 到底是什么东西 跟 SSH 又有啥关系?
盲猜和 /dev/random urandom 有关,考虑搞一些用户空间的程序加快熵的生成。
嵌入式系统的随机数来源比较少,不像桌面系统
什么 CPU ?多少 RAM ?是性能不行吧。
如果是随机数相关的话,参考下
://wiki.archlinux.org/index.php/Random_number_generation
缺熵
可以考虑安装 haveged
添加启动参数 -Djava.security.egd=file:/dev/urandom
几年前在客户的 vmware 环境遇到过类似的问题( Oracle JDBC 连接很慢,非常慢)
这个是在 boot rootfs 启动 ssh 中调用了 getrandom()这个系统调用时候卡住的,装一个 systemd 可以解决。
比较麻烦的方法就是装一个 EGD 这样的生成程序,然后重新编译 openssh,--with-egd-pool
装了 EGD 可能还需要调整一下启动的优先级啥的,所以还是在你构建系统的时候把 systemd 加进去省事~
所以为啥不用 dropbear 呢,都上 buildroot 了,我自己构建的整套也每次开机都用这个打印,也照样用