几推之后,Git Push就会挂起

And*_*ndy 5 git ssh github

我启动Ubuntu Linux,打开一个终端,编辑一些代码,并愉快地执行

git push origin master
Run Code Online (Sandbox Code Playgroud)

但是,经过一段时间(有时30分钟,有时几个小时),完全相同的命令将挂起(根本没有输出).

当我尝试

ssh -v git@github.com
Run Code Online (Sandbox Code Playgroud)

我收到以下回复:

OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010
debug1: Reading configuration data /home/avitus/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: auto-mux: Trying existing master
Run Code Online (Sandbox Code Playgroud)

然后它再次挂起.一旦我将SSH连接到另一台服务器,似乎我再也不能使用SSH来git了.任何想法如何解决这一问题?这让我不得不每次重启.

更新:

当我从〜/ .ssh/config中删除以下两行(旨在促进连接共享)时,问题就消失了

ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
Run Code Online (Sandbox Code Playgroud)

Mar*_*air 3

只是把我的猜测从评论变成答案......

输出中的最后一行ssh -v

debug1: auto-mux: Trying existing master
Run Code Online (Sandbox Code Playgroud)

...告诉您 SSH 已配置为查找现有的 SSH 连接以重用。我怀疑这种现有的连接最终会以某种方式陷入困境,这可以解释您所看到的行为。

此连接共享工具在手册页的 部分中进行ControlMaster描述。本质上,“主”SSH 会话创建一个套接字,以后的会话可以连接到该套接字,而不必再次执行潜在长度的身份验证步骤。您将此选项设置为,这意味着将自动创建并使用此套接字。ssh_config(5)/tmpauto