Sunday, 12 July 2020

SSH and Fun with Qualities of Service

An IBM colleague was having fun and games SSHing into certain internal VMs, and was seeing: -

client_loop: send disconnect: Broken pipe

Through trial and error, including judicious use of the ssh -v flag, we reached a conclusion that it was somehow related to his connectivity via his home WiFi network, combined with the corporate VPN.

At one stage, I had validate that he could SSH into GitHub: -


just to confirm that the problem appeared to only occur with the combination of SSH, home internet connection and corporate VPN.

A quick Google took me here: -


which took me here: -


which in part, said this: -

Searching for solutions, I finally found one that worked at https://superuser.com/questions/1371506/from-vmware-and-fedora-29-ssh-to-remote-machine-cause-broken-pipe.

The solution is to set the IPQoS option to throughput. You can do it from the command line or in the SSH config file.

Set option via CLI

You can set the IPQoS option via the command-line whenever you connect like this:

ssh example.com -o IPQoS=throughput

Set option in SSH config

You can set the IPQoS option in the config file (e.g. $HOME/.ssh/config) like this:

# This will apply to all hosts.
Host *
    
IPQoS=throughput

I had my colleague try adding -o IPQoS=throughput to his existing SSH command and ... it bloomin' well worked .....

There was a similar thread on the VMware forum a few years back: -


Nice!

No comments:

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...