Skip to content

Latest commit

 

History

History
62 lines (47 loc) · 2.32 KB

File metadata and controls

62 lines (47 loc) · 2.32 KB

tunnel

crabbox tunnel opens one foreground SSH local port-forward to a resolved lease. The local listener and remote destination are both fixed to 127.0.0.1; only the port numbers vary.

crabbox tunnel --id blue-box 3000
crabbox tunnel --id blue-box --local-port 8080 3000
crabbox tunnel --provider ssh --id buildbox 4173

The positional argument is the remote TCP port. --local-port is optional. If it is omitted or set to 0, Crabbox chooses an available local port.

Readiness and output

The command prints exactly one URL after the tracked SSH process owns an IPv4 loopback listener and a TCP connection to that listener succeeds:

http://127.0.0.1:49152

It does not print the URL merely because ssh launched. The URL is convenient for HTTP development servers; the forward itself is ordinary TCP.

After printing readiness, the command stays in the foreground until Ctrl-C, SIGTERM, or parent context cancellation. Teardown uses the same owned process-group/job-object path as pond SSH forwards, so the SSH root and any ProxyCommand descendants are reaped together.

Flags

--id <lease-id-or-slug>   required lease identifier
--local-port <port>       local loopback port; omit or use 0 for automatic
--provider <name>         provider selection
--network <mode>          auto, public, or tailscale target resolution
--reclaim                 claim the lease for the current repository

Provider and target-specific SSH flags are also accepted. The provider must resolve an SSH target; delegated-only providers are rejected.

Credential handling

Crabbox resolves the target internally. Secret SSH usernames, ProxyCommand policy, key and certificate paths, and host-key settings live in a private temporary OpenSSH config rather than the Crabbox-launched ssh argv or environment variables. OpenSSH executes the provider-resolved ProxyCommand under that provider's existing transport contract. Config-backed targets materialize only route fields, so unrelated configured forwards, TTY requests, and remote commands are not inherited. The config is removed after the forward exits.

See also

  • ssh - inspect the resolved SSH command.
  • cp - copy files over native or resolved SSH transports.
  • SSH lease transport - shared transport and lifecycle contract.