Skip to content

docs(remote-ssh): replace the 127.0.0.1-target advice with the verified VIP pattern - #222

Merged
robercano merged 1 commit into
mainfrom
docs/remote-ssh-infra-verified
Aug 6, 2026
Merged

docs(remote-ssh): replace the 127.0.0.1-target advice with the verified VIP pattern#222
robercano merged 1 commit into
mainfrom
docs/remote-ssh-infra-verified

Conversation

@robercano

Copy link
Copy Markdown
Owner

The runbook's Access-for-Infrastructure banner recommended registering the SSH target as 127.0.0.1 to preserve the loopback-only sshd property. Verified on a live deployment (BusyBee, 2026-08-06) that this cannot work — the client OS routes loopback traffic to itself, so it never enters WARP.

This documents the pattern that does work, verified end-to-end from a phone:

  • Virtual IP from TEST-NET-1 (192.0.2.1) bound to lo only (persisted via a oneshot unit ordered Before=ssh.service), second ListenAddress — the invisible-to-the-LAN property survives.
  • warp-routing: enabled: true on the config-file tunnel + cloudflared tunnel route ip add 192.0.2.1/32.
  • TEST-NET space needs no WARP split-tunnel carve-out (unlike RFC1918/CGNAT choices).
  • Infrastructure-app certs carry the UNIX username as principal — principals files must list it.
  • Updated dashboard locations after the 2026 Zero Trust UI reshuffle, and the zero-config phone client path (Cloudflare One app + plain ssh).

🤖 Generated with Claude Code

…ed VIP pattern

The Access-for-Infrastructure banner suggested registering the target as
127.0.0.1 to keep sshd loopback-only. That cannot work: the client OS routes
loopback to itself, so the traffic never enters WARP. Document the pattern
verified live on 2026-08-06 instead — a TEST-NET-1 virtual IP bound to lo,
a second ListenAddress, warp-routing on the tunnel, and a /32 private route —
plus the unix-username-principal gotcha, the 2026 dashboard locations, and
the zero-config phone client path.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@robercano
robercano merged commit f710e50 into main Aug 6, 2026
31 of 36 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant