Trying to git clone via SSH but getting broken pipe error

I don't know who this guy is, but bless him! This worked for me: https://blog.bchoy.me/post/2018-09-11-vmware-ssh-bug/

Put this in your ~/.ssh/config

Host *
   ServerAliveInterval 600
   TCPKeepAlive yes
   IPQoS=throughput

He has a link to some discussion about the IPQoS parameter -- which fixed it for me.


The solution

@crunk1 had the right answer for me, but I didn't need all of the settings he listed. Minimally, in ~/.ssh/config I just had to set:

Host *
   IPQoS=throughput

Info on IPQoS

That fixed my problem, but then all I wanted to know was what the heck IPQoS is. I couldn't find a simple explanation anywhere (this thread is the top hit for ipqos on SO), but there is at least some info out there.

  • The ssh_config man page describes the IPQoS option we set above, and lists all of its valid values.

  • The Debian docs describe troubleshooting a similar situation to that of the OP. In their case, they recommend

    Host *
        IPQoS=0x00
    

as the fix. Not sure what the difference is.

  • Finally, the openssh specifications page lists has spec RFC8325, which describes QoS (quality of service) in great detail. Not so simple, but from what I can glean the idea is that, on connection, modern versions of the openssh server will communicate a ToS (type of service), which somehow has to align with your client's QoS settings.

Tags:

Git