So I've implemented own client which decouples connections from each other: https://github.com/Snawoot/rsp#performance
Basicly, you get working proxy with speed almost as native connection as soon as you have SSH access somewhere.
So I've implemented own client which decouples connections from each other: https://github.com/Snawoot/rsp#performance
Basicly, you get working proxy with speed almost as native connection as soon as you have SSH access somewhere.
SSH Tunneling works with zero config so I use it as well, and rsp solves one of my major gripes with ssh tunnelling.
[1] https://www.multipath-tcp.org
Besides that you have to keep pool of steady established SSH sessions in order to start new connection forwarding inside separate SSH session as soon as incoming SOCKS requests coming.
Plain SSH client is neither able to maintain multiple SSH carrier sessions nor keep reserve pool of steady underlying connections.
The multiplexing you can disable on the server-side is a different multiplexing, but also another useful ssh feature.
If you have a workload that involves sort of firing off many commands over ssh one after the other (i.e next command is based on the output of the previous), then you can make them all grab a prenegotiated ssh connection to speed it up.
Basically, I almost always have
ControlPath ~/.ssh/control-%r@%h:%p
ControlPersist 1m
in my ssh configs to take advantage of this in my Makefiles which need to ssh across for various reasons. Ssh commands to a "central location" are great for initializing env vars with AWS keys, instead of encoding them in shell scripts - easiest way to prove your identity is to prove you have your private key.