Operator Security Guide
This page collects the operator-facing secure transport and Web API procedures in one place.
Registration
The preferred operator path is sysinspect network --add ....
Manual sysminion --register still exists, but it is no longer the normal
day-to-day onboarding flow for managed hosts.
Typical operator flow:
Start
sysmaster.Make sure SSH access to the target host already works.
Publish or refresh the desired
sysminionbuild in the repository.Run
sysinspect network --add ....Verify the host with
sysinspect cluster --onlineorsysinspect network --info ....
After registration:
the master stores the minion RSA public key
the minion stores the master RSA public key
both sides create managed transport state on disk
later reconnects bootstrap secure sessions automatically
Key And State Locations
Under the Sysinspect root, the important files are:
Master:
master.rsa: master RSA private keymaster.rsa.pub: master RSA public keyconsole.rsa: local console private keyconsole.rsa.pub: local console public keyconsole-keys/: authorised console client public keystransport/minions/<minion-id>/state.json: managed transport state for one minion
Minion:
minion.rsa: minion RSA private keyminion.rsa.pub: minion RSA public keymaster.rsa.pub: trusted master RSA public keytransport/master/state.json: managed transport state for the current master
These files are managed by Sysinspect. Do not edit the transport state files by hand during normal operation.
Secure Transport Verification
The quickest operator checks are:
sysinspect network --statusmaster and minion logs
The transport status view shows:
active key id
last successful handshake time
last rotation time
current rotation state
Healthy behavior looks like:
the minion reconnects cleanly
the master logs secure session establishment
network --statusshows a current handshake timestamp
Transport Key Rotation
Rotate one minion:
sysinspect network --rotate --id <minion-id>
Rotate a group:
sysinspect network --rotate 'edge-*'
Inspect state:
sysinspect network --status '*'
Important behavior:
online minions receive the signed rotation intent immediately
offline minions keep a pending rotation state until reconnect
the reconnect after rotation establishes a fresh secure session
old key material is kept briefly as retiring overlap and then removed
Troubleshooting
Check the logs first.
Common master-side messages:
secure bootstrap authentication failure
replay rejection
duplicate session rejection
version mismatch or malformed bootstrap rejection
staged rotation key mismatch
Web API TLS startup failure
Common minion-side messages:
missing trusted master key
missing managed transport state
bootstrap diagnostic returned by the master
bootstrap ack verification failure
reconnect triggered after transport failure
Typical recovery paths:
stale or broken minion trust: re-register the minion
changed master identity: re-register affected minions
pending rotation on an offline minion: let it reconnect, then check
network --statusbad Web API TLS file paths: fix
api.tls.*and restartsysmaster
Managed-host lifecycle recovery:
half-added host: rerun the same
network --addif the destination is still cleanly absentbroken managed remnants: rerun with
network --add --forcedead or unreachable host that still exists on the master:
network --remove --forcetrust mismatch during onboarding: remove the stale registration and let
network --addretry the register/bootstrap path
Typical onboarding failure classes:
SSH failure
unsupported remote architecture / no matching minion artefact
registration rejection or stale key mismatch
secure bootstrap failure after registration
stale live session already seen by the master
Web API TLS Setup
The embedded Web API is separate from the Master/Minion secure transport. It uses normal HTTPS/TLS.
Required configuration:
config:
master:
api.enabled: true
api.tls.enabled: true
api.tls.cert-file: etc/web/api.crt
api.tls.key-file: etc/web/api.key
Optional configuration:
config:
master:
api.tls.ca-file: trust/ca.pem
api.tls.allow-insecure: true
If api.tls.ca-file is set, the Web API requires client certificates signed
by that CA bundle.
If the configured Web API certificate is self-signed, set
api.tls.allow-insecure: true only when you intentionally want to allow
that certificate posture. Sysinspect will log a warning when it starts in that
mode.
Behavior:
if
api.enabledistruebut TLS is not configured correctly, the Web API stays disabledsysmasteritself keeps runningSwagger UI is served over
https://<host>:4202/doc/whenapi.docistrue
Operator guidance:
with
api.doc: false,/doc/and/api-doc/openapi.jsonreturn404 Not Foundwith a self-signed Web API certificate, browsers and tools must explicitly trust that certificate before Swagger UI can load
with
api.tls.ca-fileconfigured, the same trusted client certificate is required for both the Web API and Swagger UIif a client certificate is missing or untrusted, the TLS handshake fails and the documentation page is not served
keep
api.devmode: falsefor production systems
Re-Registration And Replacement
Use re-registration when:
the minion was rebuilt or replaced
the master identity changed
trust files were lost or corrupted
A clean replacement flow is:
unregister or
network --remove --forcethe old identity if neededrun
network --addfor the replacement hostconfirm secure handshake and transport status