由于一个奇怪的问题,我在尝试git clone
我的一个公共GitHub存储库时遇到了一些奇怪的问题。我知道这不是我的密钥的问题,因为我已经从另一个虚拟机中获取了相同的密钥,只是简单地修复了其权限。这是我在尝试使用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克隆http URL,但不能克隆SSH URL。
建议二
我还尝试使用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
型
你知道还有什么地方出了问题吗?
7条答案
按热度按时间kr98yfug1#
我不知道这家伙是谁,但保佑他!这对我很有效:https://blog.bchoy.me/post/2018-09-11-vmware-ssh-bug/
把这个放进你的
~/.ssh/config
里字符串
他提供了一个关于IPQoS参数讨论的链接,这为我解决了这个问题。
rks48beu2#
解决方案
@crunk1为我提供了the right answer,但我不需要他列出的所有设置。最低限度,在
~/.ssh/config
中,我只需要设置:字符串
IPQoS
信息这解决了我的问题,但后来我想知道的是
IPQoS
到底是什么。我在任何地方都找不到一个简单的解释(这个线程是SO上ipqos
的热门主题),但至少有一些信息在那里。ssh_config
手册页描述了我们在上面设置的IPQoS
选项,并列出了它的所有有效值。型
作为修复方法不知道有什么区别。
openssh
specifications page列表有spec RFC8325,它非常详细地描述了QoS
(服务质量)。不那么简单,但从我所能收集到的想法是,在连接时,openssh
服务器的现代版本将传递ToS
(服务类型),这在某种程度上必须与客户端的QoS
设置保持一致。lx0bsm1f3#
没关系。把网络接口从NAT切换到桥接模式,现在一切都很好。疯了
zed5wv104#
我在macOS 10.15.6上遇到了同样的错误。一个奇怪的转折是,我可以通过打开我的VPN来解决这个错误。我看到其他一些人who use AT&T fiber也有这个问题。
我的解决方法是将其添加到~./ssh/config中
字符串
设置
IPQoS=throughput
不适合我。感谢@tel的修复。wh6knrhe5#
尝试关闭您的VPN。对我很有效
uyto3xhc6#
这个问题可能只是因为VPN。我面对这个问题,并意识到,在我的组织中,他们正在使用网络驱动器(NTFS),我可以看到一些VPN相关的文件在那里。
显示红色(x)图标,表示连接已断开。当我点击驱动器时,它自动连接上了。
然后当我通过git克隆时,它工作得很好。
xlpyo6sf7#
帮助我的是,在公共WiFi上切换到
port 443
,症状是一样的,但原因实际上是port 22
被阻止了。尝试
字符串
如果
ssh
以这种方式工作,但没有443就不能工作,这就是问题所在。参见:https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port
简而言之,要么在
git
行中使用ssh://git@ssh.github.com:443
,要么添加到~/.ssh/config
行中。型