D-126: durable rootless agent access to VR1 site VMs (shell + forward) + DC creds prep
Establishes durable, rootless jumphost->site-VM access so the recurring
sudo-route friction stops (and generalizes to the DCs). Operator ruled Option A
(SSH via systemd --user / ssh_config ProxyJump), advisor-conferred.

Shell layer (FOUNDATION, EXERCISED): scripts/site-ssh-config.sh generates
~/.ssh/config.d/vr1-sites ProxyJump aliases (voffice1, office1-netbox,
office1-tailscale, office1-opnsense). All four aliases proven live from the
agent's session after the operator installed with the one-key office1 env key --
key read from IdentityFile, no creds path in any command (clears the guard hook).

Forward layer (convenience, reviewed-but-unexercised): scripts/site-forward.sh
holds a systemd --user SSH local-forward -> http://127.0.0.1:8000 for office1-netbox.

Secrets boundary: the key is operator-supplied via --key (a PATH, never read/baked);
generated fragments name that path and are written locally (not committed).

DC prep: per-env-key isolation (operator ruling) -- each DC gets a DEDICATED key in
its own ~/vr1-dc<N>-creds/ folder, minted at deploy. Folders pre-created (0700);
creds-manifests/vr1-dc{0,1}.manifest declare the keypairs. DC ssh aliases deferred
until their IPs are measured post-apply.

Also: D-124 dc0 rack tfvars written locally (opentofu/d124-rack.auto.tfvars,
gitignored) -- the independent `tofu plan` unblocker. vr1_dc1_rack_* NOT written
(no ruled dc1 addressing; variables absent) -- STOP flagged for an operator ruling.

Tests: site-forward 38/38, site-ssh-config 30/30; repo-lint 0-fail (1 legacy WARN).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ck6xh3jWQi5b3Su8Dx1LEH
1 parent d21b6ad commit bc2be83e1ea9ddf3bf052bb4d2e034c9287ebf85
@JANeumatrix JANeumatrix authored 23 hours ago
Showing 10 changed files
View
creds-manifests/vr1-dc0.manifest 0 → 100644
View
creds-manifests/vr1-dc1.manifest 0 → 100644
View
docs/changelog-20260716-d126-durable-forward.md 0 → 100644
View
docs/design-decisions.md
View
docs/session-ledger.md
View
docs/vr1-office1-as-built.md
View
scripts/site-forward.sh 0 → 100644
View
scripts/site-ssh-config.sh 0 → 100644
View
tests/site-forward/run-tests.sh 0 → 100644
View
tests/site-ssh-config/run-tests.sh 0 → 100644