解决 hexo d 提示:ssh_exchange_identification:read:Connection reset by peer 的问题

问题

今天写完博客,用 hexo d 部署到 github,突然报了个错误:

1
2
3
4
5
Error: ssh_exchange_identification: read: Connection reset by peer
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

解决办法

最后发现是上网环境导致的,因为现在在图书馆,连的是图书馆的 wifi,可能是图书馆的防火墙或者代理服务器导致不能连接到 github,换个上网网络就能 hexo d 提交了。

所以如果你的上网环境从家里换成公司或者其他公共场合,就要注意了,可能是提供网络的路由器或者机构的防火墙搞的鬼哦。

最后发现原来是被图书馆的 wifi 网络整蛊了之后,有点抓狂,在此记录一下问题以及解决问题的思路,希望对遇到同样问题的人有所帮助。

解决问题的思路过程

咦,奇了怪了,前几天明明还好好的,突然就提交不了了,看日志大意是:SSH验证失败,连接被重置了。

  1. 看到 Please make sure you have the correct access rights and the repository exists. ,刚开始怀疑是不是远程仓库的密钥过期了,因为我之前遇到过密钥过期导致提交不上的情况,所以赶紧去远端仓库查看一下密钥的有效期限,发现并没有过期。排除这种可能。✖️

  2. 会不会是 SSH 密钥的问题?去确认一下,远端仓库密钥没有更改过,回想一下最近本机也没有重新生成过 SSH key,所以这种可能也排除。✖️

  3. 实在没有想到好的解决方法,OK,google,在 StackOverFlow 上发现说这种异常的连接重置,原因可能是:服务器进程退出时没有关闭连接,或者crash,或者防火墙或代理、或者负载平衡器干扰连接 导致的。

    https://stackoverflow.com/a/27692498/9031185

    OK,我确实开了代理,检查一下防火墙是否关闭,把代理也关了,重试还是没解决。也排除。✖️

  4. 缩小关键字,继续搜索,搜索 hexo ssh_exchange_identification: read: Connection reset by peer ,最终搜索到了相关性更强的有价值的参考方案。

    http://dtoucoin.com/2017/05/20/Github的Push操作后提示Connection-reset-by-peer问题解决方法/

  5. 最后定位到:是图书馆 wifi 网络的防火墙或者代理服务器导致的连接不到 github。

总结

  1. 遇到让你感到莫名其妙的问题时,先要理清思路,其次要有耐心,逐个可能性去排除,逐步逼近真相,找到最后的成因。
  2. 在用搜索引擎搜索解决方案时,要注意先想好跟问题相关性较强的关键词,否则会搜出很多相关性很弱的答案,既混淆你的思路和判断,又耗费你很多时间。
  3. 遇到之前能正常工作,突然就不能正常工作了这类问题时,要重点从对比前后的 变量 入手,看现象出现前和现在相比,哪些因素发生了变化?哪些环境发生了变化?通常都是某个特定的因素变化了,而导致的现在的现象。
让我们来一场点赞之交?
0%