52 lines
2.9 KiB
Markdown
52 lines
2.9 KiB
Markdown
- `[2026-09-03]` **Three Macs onboarded with infra-ops + NOPASSWD sudo + the DeepSeek Harness, and the fourth is a script instead of a fourth hand-run.**
|
|
|
|
vuongs-mac-mini 10.100.79.2 infra-ops + lkraven
|
|
esh-macbook-air 10.0.10.83 infra-ops + lkraven
|
|
esh-mac-studio 10.0.10.10 infra-ops + vhpfi
|
|
|
|
Each: key auth, `visudo`-validated NOPASSWD drop-in, password rotated to 32
|
|
random chars and vaulted at `<name>/infra-ops-password`. `dsh` runs in the
|
|
operator's own account on each, on a **device-scoped** LiteLLM key
|
|
(`<name>-dsh`, scoped to `gen-reasoning`, scope verified 200/403 rather than
|
|
trusted from the mint) — a laptop travels, and losing one should be one
|
|
revocation, not a fleet key rotation.
|
|
|
|
`scripts/provision-mac-dsh.sh <host> <account> [name]` carries every trap; the
|
|
operator-run half is `docs/runbooks/mac-provisioning.md`.
|
|
|
|
⚠ **`sudo -u <user>` KEEPS THE CALLER'S `$HOME`.** Without `-H` and an explicit
|
|
`HOME=`, `"$HOME/.local"` resolved to the caller's home and an `rm -rf` aimed at
|
|
a **working install in another account**. Only filesystem permissions stopped
|
|
it. The script now refuses to run unless `$HOME` matches the target.
|
|
|
|
⚠ **An account may not own its own home.** A `sudo mkdir` before `sysadminctl`
|
|
leaves `/Users/<account>` root-owned; the account authenticates, gets a shell,
|
|
reports the right `$HOME`, and cannot write to it — surfacing as a bare
|
|
"Permission denied" hours later.
|
|
|
|
⚠ **A wrong USERNAME looks exactly like a wrong password.** sshd answers
|
|
`Permission denied (publickey,password,keyboard-interactive)` for a bad user, a
|
|
bad password, AND a user outside `com.apple.access_ssh`. This produced a false
|
|
diagnosis twice in one session — once where the password was a typo
|
|
(`no-password` vs `nopassword`) and I blamed the access group, once where the
|
|
Studio's operator account is **`vhpfi`, not `lkraven`**. Check
|
|
`dscl . -list /Users` FIRST.
|
|
|
|
⚠ **Rotation: use `dscl . -passwd`, not `sysadminctl`.** With FileVault on and
|
|
no Secure Token on the account, `sysadminctl -resetPasswordFor` refuses with
|
|
"Operation is not permitted without secure token unlock". `dscl` works precisely
|
|
because there is no token to desync. True on all three Macs.
|
|
|
|
⚠ **FileVault kills remote access across reboots** — the machine sits at the
|
|
pre-boot unlock screen with no network. Nothing unattended should depend on a
|
|
Mac being reachable after a restart.
|
|
|
|
⚠ macOS has no `adduser`, `useradd`, or `timeout`.
|
|
|
|
Harness config (all machines): `high` → the seat's `xhigh` via the gateway hook;
|
|
`maxTokens 32768` (the 256000 default left 6144 for input and overflowed on a
|
|
two-word prompt); `defaultContextWindow 262144`; and `models:` **replacing** the
|
|
provider's hard-coded DeepSeek catalog, which the web GUI reads INDEPENDENTLY of
|
|
`agent-default-model` — without it the picker offers three models the gateway
|
|
does not serve while headless runs work fine. Commits `6ca455a`, `926fc2f`.
|