Skip to content

Add separate beacon trust flow#297

Open
dniku wants to merge 1 commit into
ibizaman:mainfrom
dniku:beacon-trust-flow
Open

Add separate beacon trust flow#297
dniku wants to merge 1 commit into
ibizaman:mainfrom
dniku:beacon-trust-flow

Conversation

@dniku

@dniku dniku commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Motivation

The on-premise install flow previously used the final host trust path while talking to the beacon. The beacon boots with its own generated SSH host key, so treating it like the final host makes the trust boundary ambiguous and can train users or tests to accept the wrong key during installation.

Design

Introduce a dedicated beacon trust file, <host>/beacon_known_hosts, and make all beacon-specific commands use the <host>-beacon alias against that file. The normal final-host known_hosts file remains separate. The new trust command scans the beacon key, shows fingerprints, writes the beacon trust file only after confirmation or --yes, and requires --force when replacing a different trusted beacon key.

Implemented changes

Add <host>-beacon-trust, <host>-beacon-ssh, <host>-beacon-get-facter, and <host>-beacon-install. Keep the old <host>-get-facter and <host>-install-on-beacon names as deprecated aliases with stderr warnings. Document the new flow, ignore generated beacon_known_hosts files in the template, and update VM tests to use the new beacon commands, verify that the final host key is rejected for beacon SSH, and use a bounded beacon-trust startup loop.


Fixes #267.

@dniku dniku force-pushed the beacon-trust-flow branch 5 times, most recently from 8f14398 to f2757a5 Compare June 13, 2026 07:50
Motivation:
The on-premise install flow previously used the final host trust path while talking to the beacon. The beacon boots with its own generated SSH host key, so treating it like the final host makes the trust boundary ambiguous and can train users or tests to accept the wrong key during installation.

Design:
Introduce a dedicated beacon trust file, `<host>/beacon_known_hosts`, and make all beacon-specific commands use the `<host>-beacon` alias against that file. The normal final-host `known_hosts` file remains separate. The new trust command scans the beacon key, shows fingerprints, writes the beacon trust file only after confirmation or `--yes`, and requires `--force` when replacing a different trusted beacon key.

Implemented changes:
Add `<host>-beacon-trust`, `<host>-beacon-ssh`, `<host>-beacon-get-facter`, and `<host>-beacon-install`. Keep the old `<host>-get-facter` and `<host>-install-on-beacon` names as deprecated aliases with stderr warnings. Document the new flow, ignore generated `beacon_known_hosts` files in the template, and update VM tests to use the new beacon commands, verify that the final host key is rejected for beacon SSH, and use a bounded beacon-trust startup loop.
@dniku dniku force-pushed the beacon-trust-flow branch from f2757a5 to e70eca4 Compare June 14, 2026 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Beacon SSH host key does not appear to use generated host_key.pub and is regenerated on every reboot

1 participant