Files
matrix-screen-controller/各种归档/20260819_离线镜像1.0.2_SSH首启失败修复

离线镜像 1.0.2 SSH 首启失败修复记录

现场结果

  • 设备供电后网络间歇可达,但 SSH 22 和控制服务 8080 在 20 分钟门槛内始终未开放。
  • FAT 状态文件报告 stage=ssh 失败;账户、sudoers、受管 SSH 配置、服务启用链接、machine-id 和新 SSH 主机密钥均已写入。
  • ext4 systemd journal 的直接证据为:sshd -t 报告缺少 privilege separation 运行目录 /run/sshd,随后首启服务以退出码 1 失败。

根因与修复

  • 首启 unit 通过 Before=ssh.service 正确阻止 SSH 提前监听,因此 systemd 尚未为 ssh.service 创建易失的 /run/sshd。
  • 首启程序却在服务启动前直接执行 sshd -t/-T,错误依赖了该目录已经存在。
  • configure_ssh 现于策略校验前创建 /run/sshd 并设置模式 0755;需求和测试映射同步增加该门槛。
  • 同版本正式 IMG 只刷新 FAT bundle,第二分区保持核桃派已验证的 SHA-256 a3207843b6c405df3abb827c80ffd60285788541e62fa6fdd8335498084a9f95 不变。失败卡上的三个 FAT 载荷文件已逐字更新并读回,配置区摘要写前写后一致。

自动验证

  • SSH/镜像聚焦测试:11 项通过。
  • 完整 Python:304 项通过、8 项跳过。
  • 前端:55 项通过,全部 JavaScript 与相关 shell 语法检查通过。
  • 新正式 IMG 与发布记录摘要一致;旧摘要已失效,不得继续使用。

本记录不包含账户、密码、Wi-Fi、IP、主机密钥内容或其他设备身份值。修复后的真实首次启动、SSH、sudo、网页和再次重启仍需重新验收。