尝试通过SSH进行git克隆,但是管道出错了

Lew*_*uce 14 git

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
Run Code Online (Sandbox Code Playgroud)

建议1

参考:https://gitlab.com/gitlab-com/support-forum/issues/129

试图将以下内容添加到/etc/ssh/ssh_config文件中:

Host *
ServerAliveInterval 120
TCPKeepAlive no
Run Code Online (Sandbox Code Playgroud)

没有运气 我甚至试图改变TCPKeepAliveyes,同样的事情发生了.

我的DNS服务器设置为8.8.8.8,所以不太确定这是问题.我可以git克隆http URL,而不是SSH URL.

建议2

我还尝试ssh使用verbose选项运行该命令,并根据输出,它看起来实际上成功验证,如下所示:

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
Run Code Online (Sandbox Code Playgroud)

知道这里还有什么可能出错吗?

tel*_*tel 29

解决方案

@crunk1为我提供了正确答案,但我不需要他列出的所有设置。至少,~/.ssh/config我只需要设置:

Host *
   IPQoS=throughput
Run Code Online (Sandbox Code Playgroud)

信息 IPQoS

这解决了我的问题,但我只想知道到底IPQoS是什么。我在任何地方都找不到简单的解释(此线程是ipqosSO 上的热门话题),但至少有一些信息。


cru*_*nk1 26

我不知道这个人是谁,但祝福他!这对我有用:http://blog.bchoy.me/2018/09/11/vmware-ssh-bug/

Host *
   ServerAliveInterval 600
   TCPKeepAlive yes
   IPQoS=throughput
Run Code Online (Sandbox Code Playgroud)

他有一些关于IPQoS参数的讨论的链接 - 它为我修复了它.

  • 也帮助了我。链接是 404,所以对于那些想知道的人,您应该将以上几行放在以下文件中:~/.ssh/config (2认同)

Mat*_*ttL 8

我在 macOS 10.15.6 上也遇到了同样的错误。一个奇怪的变化是我可以通过打开 VPN 来解决该错误。我看到其他一些使用 AT&T 光纤的人也遇到这个问题。

对我来说,修复方法是将其添加到 ~./ssh/config

Host github.com
  IPQoS 0x00
Run Code Online (Sandbox Code Playgroud)

设置IPQoS=throughput对我不起作用。修复工作归功于@tel 。


Lew*_*uce 7

没关系。将网络接口从NAT切换到桥接模式,现在一切正常。疯。