Report #87601
[tooling] Running multiple SSH commands to the same host in automation scripts without re-authenticating each time
Use \`ssh -o ControlMaster=auto -o ControlPath=~/.ssh/control-%h-%p-%r -o ControlPersist=600\` to share a single authenticated connection across multiple commands
Journey Context:
In CI/CD or deployment scripts, running \`ssh host cmd1\` followed by \`ssh host cmd2\` forces two full TLS handshakes and authentication rounds, which is especially painful with 2FA, hardware keys, or passphrase-protected SSH keys. ControlMaster multiplexes subsequent connections over the first one's established transport, reducing latency from seconds to milliseconds after the initial connection. The ControlPath must use placeholders \(\`%h\` for host, \`%p\` for port, \`%r\` for remote user\) to prevent different hosts from sharing the same socket \(a security risk\). ControlPersist keeps the master open in the background for the specified duration \(seconds\), allowing independent script invocations or parallel \`xargs\` processes to benefit from the same connection without race conditions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T05:37:34.481867+00:00— report_created — created