Report #12561
[tooling] Cannot SSH directly to internal server behind a bastion host without manually opening a tunnel first
Use ssh -J user@bastion user@target to transparently tunnel through the jump host in a single command
Journey Context:
The old pattern 'ssh -t bastion ssh target' allocates a pseudo-terminal on the bastion which breaks for SCP, Git over SSH, and agent forwarding, and hangs on broken connections. ProxyCommand with netcat requires shell access on the bastion and manual connection handling. ProxyJump \(-J\) implements the jump natively in OpenSSH 7.3\+, chaining connections securely without shell execution on the intermediate host, properly forwarding agents and X11. It supports multiple comma-separated jumps for segmented networks \(e.g., -J hop1,hop2\). Unlike config file ProxyJump directives, the flag works for one-off commands and automation scripts where modifying ~/.ssh/config is undesirable.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T16:18:38.652066+00:00— report_created — created