由于一个奇怪的问题,我在尝试git clone
我的一个公共GitHub存储库中遇到一些奇怪的问题。我知道这与我的密钥无关,因为我已经从另一台VM取得了相同的密钥,只是简单地修复了它的权限。这是我尝试使用SSH时遇到的错误:
[root:kali:~/scripts]# ssh -T git@github.compacket_write_wait:
Connection to 192.30.253.112 port 22: Broken pipe
建议1
参考:https://gitlab.com/gitlab-com/support-forum/issues/129
试图将以下内容添加到/etc/ssh/ssh_config
文件中:
Host *
ServerAliveInterval 120
TCPKeepAlive no
也没有运气。我什至尝试将TCPKeepAlive
更改为yes
,并且发生相同的事情。
我的DNS服务器设置为8.8.8.8
,所以不太确定这是问题所在。我可以git clone http URL,而不是SSH URL。
建议2
我还尝试使用verbose选项运行ssh
命令,根据输出,看起来它实际上已成功认证,如下所示:
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Authentication succeeded (publickey).
Authenticated to github.com ([192.30.253.113]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: pledge: network
debug1: Sending environment.
debug1: Sending env LANG = C.UTF-8
debug1: Sending env LC_CTYPE = C.UTF-8
packet_write_wait: Connection to 192.30.253.113 port 22: Broken pipe
你知道这里还有什么问题吗?
答案 0 :(得分:15)
我不知道这个人是谁,但是保佑他!这对我有用:http://blog.bchoy.me/2018/09/11/vmware-ssh-bug/
Host *
ServerAliveInterval 600
TCPKeepAlive yes
IPQoS=throughput
他有一些有关IPQoS参数的讨论的链接,该参数已为我修复。
答案 1 :(得分:7)
没关系。将网络接口从NAT切换到桥接模式,现在一切正常。疯了。
答案 2 :(得分:1)
@ScottCrunkleton为我准备了the right answer,但我并不需要他列出的所有设置。最低限度地,我只需要在~/.ssh/config
中进行设置:
Host *
IPQoS=throughput
IPQoS
的信息这解决了我的问题,但是然后我只想知道IPQoS
是什么。我在任何地方都找不到简单的解释(该线程是ipqos
上的热门话题),但至少有一些信息。
ssh_config
man page描述了我们在上面设置的IPQoS
选项,并列出了其所有有效值。OP的Debian docs describe troubleshooting a similar situation。对于他们的情况,他们建议
Host *
IPQoS=0x00
作为解决方案。不知道有什么区别。
openssh
specifications page列表具有规范RFC8325,该规范详细描述了QoS
(服务质量)。并非如此简单,但据我所知,在连接时,openssh
服务器的现代版本将传达ToS
(服务类型),它必须以某种方式与客户的服务保持一致。 QoS
设置。答案 3 :(得分:0)
尝试关闭您的VPN。它对我有用。
答案 4 :(得分:0)
我在macOS 10.15.6上遇到了同样的错误。一种怪异的转折是我可以通过打开VPN来解决该错误。我看到其他人who use AT&T fiber也有这个问题。
对我来说,解决方法是将其添加到〜。/ ssh / config
Host github.com
IPQoS 0x00
设置IPQoS=throughput
对我不起作用。修复工作归功于@tel。