docs(ssh-host-cert): record F-02 bench-verified end-to-end (2026-07-11)

SSH host-cert flow proven on comet-beacon-54 (TPM-mTLS -> broker -> step-ca ->
cert install -> admin login by FQDN, no TOFU; per-boot auto-re-sign across
reboot). Design doc gains a Bench outcome section (defects+fixes table, retracted
empty-principals finding, post-boot TOFU window, deploy caveat); status flips to
BENCH-VERIFIED. TODO 'SSH host keys' caveat marked RESOLVED (F-02/P-17). The
bench-surfaced code/serving fixes live on branch poam-hardening (28d31e4).
This commit is contained in:
Audiobuzz
2026-07-11 09:50:33 +00:00
parent fbb8100ecd
commit 8e1418c19d
2 changed files with 69 additions and 12 deletions
+7 -2
View File
@@ -307,8 +307,13 @@ and cleanup.
"Permissions 640 too open" and refused to start). RHEL's `sshd-keygen@.service`
regenerates them into the overlay before sshd starts. **⚠ Caveat:** the
ephemeral overlay means they regenerate **every boot** → the host key changes
per reboot (clients warn). Follow-up for a stable host identity: persist the
host keys or derive them from the TPM (ties to the hostnqn/identity model).
per reboot (clients warn). **RESOLVED (F-02/P-17, bench-verified 2026-07-11 on
comet-beacon-54):** rather than persist a key, each per-boot key is signed into
an OpenSSH host certificate by the fleet SSH CA via the enrol-broker host plane
at boot (`files/ssh-hostcert` → `fleet-ssh-hostcert`); admins trust one
`@cert-authority` line instead of TOFU. See
[ssh-host-certificate-design.md](ssh-host-certificate-design.md). Bench-surfaced
fixes on branch `poam-hardening` (`28d31e4`).
## [ ] 3. Roll the errata into design doc v3