git-collab-server setup locks out every key not in keydir #97
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?
Not a defect in
0065cd95— a consequence of governance that my issue text for3733cccdgot wrong, and that an operator must decide about before running setup on a live server.I wrote: "Do not touch
authorized_keys; the pre-governance path keeps working until the operator chooses otherwise." It does not. Confirmed at session.rs:536:auth_publickeymatches onGovernanceState:Activeconsultskeydir/only;authorized_keysis read only in theAbsentarm. So the instantsettings.gitexists, every key not inkeydir/is refused SSH auth.The supersession itself is right — two rosters that can disagree is worse. What is wrong is that setup is a one-key bootstrap, so running it on a populated server locks out everyone except the admin, immediately, with no warning at the point of decision.
0065cd95reports it in setup's closing output and in the README, which is the honest minimum, but the operator still has to notice.Live blast radius: the deployment's
authorized_keysholds 2 keys, so running setup as it stands would lock out 1 of them.Options:
authorized_keysentries intokeydir/during setup. Preserves access exactly, matching the no-op principle the rest of setup is built on — the whole point of that design is that enabling governance changes nothing until you choose to change it, and auth is the one axis where it currently does. The obstacle is naming:authorized_keysentries have no identity, and the keydir basename is the principal. Comments could seed a name, with a fallback likekey1,key2for the operator to rename.--enrol-existingflag, so the default stays a clean single-admin bootstrap and the migration case is explicit.Recommend 1 or 2. As it stands, the safest command we ship has one sharp edge left, and it is the one that locks you out of your own server.
Migrated from git-collab issue
54b04c35342e149b9e9d92fb894c761ea79ab71f.Original author: a73x dev@a73x.sh.
Close reason: merged in patch
65c569f3