【问题标题】:Github - can't connect via ssh from time to timeGithub - 有时无法通过 ssh 连接
【发布时间】:2016-04-16 15:56:15
【问题描述】:

情况

我使用的是linux(mint mate 17.2),当通过ssh推送到github时,有时会出现连接失败,通常是重启电脑和网络后会恢复。几天后,它可能又变坏了,很混乱。

http推送从来没有这样的问题,但是需要密码,不方便。

调试信息

通过 ssh 推送时:

debug1:连接到 github.com [192.30.252.129] 端口 22。

卡在上面一行。

然后经过漫长的等待,得到超时提示:

debug1:连接到地址 192.30.252.129 端口 22:连接超时

ssh: 连接到主机 github.com 端口 22: 连接超时

致命:无法从远程存储库读取。

问题:

可能是什么原因,如何解决?


更多调试信息:

ping 很好:

eric@eric-pc:~$ ping 192.30.252.129
PING 192.30.252.129 (192.30.252.129) 56(84) bytes of data.
64 bytes from 192.30.252.129: icmp_seq=1 ttl=50 time=345 ms
64 bytes from 192.30.252.129: icmp_seq=2 ttl=50 time=452 ms
64 bytes from 192.30.252.129: icmp_seq=3 ttl=50 time=373 ms
64 bytes from 192.30.252.129: icmp_seq=4 ttl=50 time=349 ms
64 bytes from 192.30.252.129: icmp_seq=5 ttl=50 time=346 ms
64 bytes from 192.30.252.129: icmp_seq=6 ttl=50 time=442 ms
64 bytes from 192.30.252.129: icmp_seq=7 ttl=50 time=344 ms

telnet 不好:

eric@eric-pc:~$ telnet 192.30.252.129 22
Trying 192.30.252.129...

@更新:

我在同一网络中设置了另一台计算机,使用相同的ssh密钥,通过ssh成功推送到github,而原计算机仍然超时。

操作:

  • 重启网络,还是无法连接。

  • 重启ssh-agent,还是连接不上,老进程变成了失效的ssh-agent进程,而有一个新的ssh-agent:

埃里克 2552 0.0 0.0 0 0 ? Zs Jan08 0:00 [ssh-agent] 埃里克 27080 0.0 0.0 10628 316 ? ss 15:26 0:00 ssh-agent eric 27168 0.0 0.0 17028 2548 pts/7 S+ 15:27 0:00 grep --color=auto ssh-agent
  • 重启 linux,然后 ssh 工作,

猜测:

  • ssh-agent 有问题,
  • github由于某种原因阻止了我的客户端,

其实,在问之前,我从google上看到过类似的问题,但没有解决问题,也没有人解释原因。

而且这个问题真的很烦人,因为我不想每次推送都输入密码,也不想时不时重启我的电脑,有什么帮助吗?

【问题讨论】:

  • 在更高的调试级别还有输出吗?您可以使用不同的应用程序进行连接吗? (例如telnet 192.30.252.129 22 应该返回一个横幅)如果您在同一网络上有不同的机器 - 当第一台卡住时您可以从它连接吗?你在使用控制插座吗? (您的 ssh 配置中的 ControlMaster / ControlPath 变量)
  • @viraptor debug3 是最高的,问题中添加了ping&telnet结果,我在网络中设置了另一台电脑用相同的ssh密钥,它通过ssh成功推送,而原来的电脑还是不行。我没有使用控制插座。
  • 这个问题可能是故障机器上的防火墙引起的
  • @Ferrybig 我正在使用 mint mate,唯一的防火墙是 ufw,它允许端口 22,但重要的是远程端口,而不是本地端口,对吧?而且,防火墙一直都在,只是机器运行时ssh突然不可用,所以我认为这不是本地防火墙问题。
  • @Ferrybig 是的,这也是我多年不使用 windows 的原因之一。

标签: git github ssh openssh ssh-agent


【解决方案1】:

尝试使用以下命令更改您的 git 默认 ssh 端口 $ git remote add origin ssh://user@host:1234/srv/git/example 和你的 ssh 端口到 1234。你可以使用你喜欢的任何其他端口而不是 1234(建议大于 1000)。看看它是否可以解决你的问题。 :)

。如果不退出创建一个,请尝试更改您的 ~/.ssh/config 文件。

Host github.com Port 22 Host * Port 1234

【讨论】:

  • github上的repo,我无权更改github的ssh端口。
  • 由于连接超时,这意味着您可以访问 git 网络,但您连接的端口没有响应,因此肯定是端口问题。请参阅我编辑的答案。
  • 为什么你认为在 > 1024 的端口上运行 ssh 是个好主意??
  • 我不认为添加Port 1234 会解决这个问题,因为你正在尝试更改github的端口,这是不可能的,无论如何我尝试了你的配置它没有解决它。
猜你喜欢
  • 2015-10-21
  • 2012-03-20
  • 2012-09-04
  • 2017-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
相关资源
最近更新 更多