Sign closures on the hypervisor so guest root login can close again #13
Labels
No labels
blocked
bug
decision
duplicate
enhancement
help wanted
invalid
landed?
question
ready-to-merge
stale
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/vm#13
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The hypervisor signs the systems it builds and every guest trusts that signature, so a rebuild can be delivered to a guest as its login user again and root stops accepting SSH logins on guests at all.
Primary goals:
nix.settings.secret-key-filesnames an age-encrypted key the secrets layer owns; the public half is identity data the inventory or secrets layer exports, never a value in a framework repo.nix.settings.trusted-public-keyson every guest gains the hypervisor's public key beside the cache's, sonix-copy-closurefrom an untrusted user is accepted because the paths are signed, not because the user is trusted.users.users.root.openssh.authorizedKeys.keysgoes back to empty on guests,PermitRootLogintono, andrebuild-vmtargets the login user with--sudoagain; the assertion and sabotage fixtures from allod/vm#12 flip to pin the closed state.architecture.md, published is forever).Why
allod/vm#12 removed the guest user from nix's trusted users, which it had to, and the only way to keep rebuilds working without a signing key was to deliver as root. That is the same authority nexus already had through passwordless sudo, so nothing escalated, but it is a second account on every guest, privacy guests included, that accepts the hypervisor's SSH key, and every guest built before the change needed a one-time delivery by the old path. Signed closures are the shape the nix model intends: trust the bytes, not the courier. Cost: a key to generate and distribute, which is host-only, and a public key that every guest's configuration must carry from a data input, which is why this is its own arc and not part of allod/strategy#69.
Scope
In:
allod/vmguest module (trusted-public-keys from an input, root login closed),allod/nexus(secret-key-files, rebuild-vm target), the secrets template (a synthetic signing key pair and its registry entry), and a nested or live witness that an unsigned path is refused and a signed one accepted. Out: substituter changes, the cache, and the sandbox command.