Skip to content

tnctl ssh --wireguard (ZTNA WireGuard path) - #12

Merged
tekn0ir merged 5 commits into
mainfrom
ztna-wireguard
Oct 14, 2026
Merged

tekn0ir merged 5 commits into
mainfrom
ztna-wireguard

Conversation

@tekn0ir

@tekn0ir tekn0ir commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Part of the WireGuard-over-STUNner ZTNA tunnel MVP (runs in parallel with the SSH tunnel path, which is unchanged). Design: workspace plans/wireguard-ztna-tunnel.md; contract and core code: https://github.com/teknoir/wg-tunnel (pkg/api). Reviewed by a mixed haiku/sonnet/opus panel (52 confirmed findings fixed or dispositioned, re-verified by opus).

Existing ssh path unchanged; token refresh helper deduplicated; go 1.26. Needs a release only after staging verification.

🤖 Generated with Claude Code

tekn0ir and others added 5 commits October 13, 2026 12:10
- ssh --wireguard [--wg-hub-url] [--turn-server] runs system ssh with a
  ProxyCommand of `tnctl wg-proxy`, strict host key checking against the
  keys the hub vouches for, and the same device login/password hint as
  the SSH tunnel path. The default path is unchanged.
- wg-proxy creates a client session through github.com/teknoir/wg-tunnel
  (wgclient), writes known_hosts before relaying, and reports hub
  denials (revoked, forbidden, offline, ...) as one stderr line, exit 1.
- auth.AccessToken replaces the duplicated load/refresh/save block in
  FetchDeviceDetails and FetchDeviceDetailsList; it re-reads the config on
  every call so wg-proxy renewals always use a fresh token.
- Go 1.26 (wg-tunnel requirement) in go.mod and CI/release workflows.
- Docs: ssh command, remote-access concept, README.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…anup, serialised token refresh, bump wg-tunnel b1098de

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tekn0ir
tekn0ir merged commit e27a35f into main Oct 14, 2026
2 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