Add to ~/.ssh/config
:
Host *
# Enable persistent connection multiplexing
ControlMaster auto
ControlPath ~/.ssh/-%r@%h:%p
ControlPersist 600
Now first connection to host will establish persistent daemon connection; subsequent commands will multiplex over existing connection, reducing setup/connect overhead by ~10x.
First connection establishes persistent control master daemon:
$ time ssh example.com true
real 0m1.687s
user 0m0.066s
sys 0m0.014s
Subsequent connections:
$ time ssh example.com true
real 0m0.162s
user 0m0.053s
sys 0m0.010s
Idle connections with no riders are auto stopped after 10 mins (ControlPersist 600
)
but you can manage connections manually w/ ssh -O
:
$ ssh -O check example.com
Master running (pid=40196)
$ ssh -O stop example.com
Stop listening request sent.