受影响镜像
Armbian_26.08.0_rockchip_bdy-g18-pro_trixie_6.18.35_server_2026.06.12.img.gz
(Release: Armbian_trixie_arm64_server_2026.06,开机横幅显示 Armbian-unofficial 26.08.0-trunk)
- 设备:彼度云 BDY-G18-Pro (rk3568),该机型没有 HDMI 输出
- 对照:同一 Release 里的
Armbian_26.05.0_rockchip_alark35-3500_*(另一台 rk3568)无此问题
现象
刷入后系统正常启动、DHCP 正常拿 IP,但 22 端口 connection refused。多次冷启动结果一致(确定性 bug,非偶发)。
由于 BDY-G18-Pro 没有 HDMI,普通用户刷完即失联,只能拆壳接 TTL(1500000)排查,体验上等同于变砖。
根因分析(已在串口下定位)
journalctl -u ssh 显示:
sshd[550]: sshd: no hostkeys available -- exiting.
ssh.service: Start request repeated too quickly.
Failed to start ssh.service - OpenBSD Secure Shell server.
/etc/ssh/ 下没有任何 ssh_host_* 文件——镜像构建时删除了 host key(这是正确的安全实践),预期由首启脚本重新生成。
- 但
/usr/lib/armbian/armbian-firstrun 第 50 行的生成逻辑被变量守着:
if [[ "${OPENSSHD_REGENERATE_HOST_KEYS}" = true ]]; then
rm -f /etc/ssh/ssh_host*
dpkg-reconfigure openssh-server >/dev/null 2>&1
service ssh restart
- 而该镜像的
/etc/armbian-release 里不存在 OPENSSHD_REGENERATE_HOST_KEYS 这个变量(grep OPENSSHD /etc/armbian-release 无结果)→ 条件不成立 → 走了 "SSH host keys unchanged" 分支 → key 永远缺失 → sshd 永远起不来。
临时解决(已验证)
串口登录后执行:
ssh-keygen -A && systemctl restart ssh
立即恢复,且永久有效。
修复建议
- 构建管线确保把
OPENSSHD_REGENERATE_HOST_KEYS=true 写入 trunk 镜像的 /etc/armbian-release;
- 或者(更防御性的做法)
armbian-firstrun 在检测到 /etc/ssh/ 下没有任何 host key 时,无视该变量直接生成——"有变量才补钥匙"对无显示输出的设备来说失败代价太高。
English summary
Image Armbian_26.08.0_rockchip_bdy-g18-pro_trixie_6.18.35 (26.08.0-trunk) ships without SSH host keys, and /etc/armbian-release is missing OPENSSHD_REGENERATE_HOST_KEYS, so the regeneration branch in armbian-firstrun (line ~50) never runs. sshd fails with "no hostkeys available -- exiting" on every boot. Since BDY-G18-Pro has no HDMI, the device is effectively bricked for headless users; recovery required a TTL console (1500000 baud) and ssh-keygen -A. Suggested fix: write OPENSSHD_REGENERATE_HOST_KEYS=true into /etc/armbian-release during trunk builds, or make firstrun regenerate unconditionally when no host keys exist.
受影响镜像
Armbian_26.08.0_rockchip_bdy-g18-pro_trixie_6.18.35_server_2026.06.12.img.gz(Release:
Armbian_trixie_arm64_server_2026.06,开机横幅显示Armbian-unofficial 26.08.0-trunk)Armbian_26.05.0_rockchip_alark35-3500_*(另一台 rk3568)无此问题现象
刷入后系统正常启动、DHCP 正常拿 IP,但 22 端口 connection refused。多次冷启动结果一致(确定性 bug,非偶发)。
由于 BDY-G18-Pro 没有 HDMI,普通用户刷完即失联,只能拆壳接 TTL(1500000)排查,体验上等同于变砖。
根因分析(已在串口下定位)
journalctl -u ssh显示:/etc/ssh/下没有任何ssh_host_*文件——镜像构建时删除了 host key(这是正确的安全实践),预期由首启脚本重新生成。/usr/lib/armbian/armbian-firstrun第 50 行的生成逻辑被变量守着:/etc/armbian-release里不存在OPENSSHD_REGENERATE_HOST_KEYS这个变量(grep OPENSSHD /etc/armbian-release无结果)→ 条件不成立 → 走了 "SSH host keys unchanged" 分支 → key 永远缺失 → sshd 永远起不来。临时解决(已验证)
串口登录后执行:
ssh-keygen -A && systemctl restart ssh立即恢复,且永久有效。
修复建议
OPENSSHD_REGENERATE_HOST_KEYS=true写入 trunk 镜像的/etc/armbian-release;armbian-firstrun在检测到/etc/ssh/下没有任何 host key 时,无视该变量直接生成——"有变量才补钥匙"对无显示输出的设备来说失败代价太高。English summary
Image
Armbian_26.08.0_rockchip_bdy-g18-pro_trixie_6.18.35(26.08.0-trunk) ships without SSH host keys, and/etc/armbian-releaseis missingOPENSSHD_REGENERATE_HOST_KEYS, so the regeneration branch inarmbian-firstrun(line ~50) never runs. sshd fails with "no hostkeys available -- exiting" on every boot. Since BDY-G18-Pro has no HDMI, the device is effectively bricked for headless users; recovery required a TTL console (1500000 baud) andssh-keygen -A. Suggested fix: writeOPENSSHD_REGENERATE_HOST_KEYS=trueinto/etc/armbian-releaseduring trunk builds, or make firstrun regenerate unconditionally when no host keys exist.