问题:
- 本地项目push到github失败> Push failed> Kex_exchange_identification: Connection closed by remote hostConnection closed by 20.205.243.166 port 22> Could not read from remote repository.> Please make sure you have the correct access rightsand the repository exists.
- 同样地,从github中clone、pull、fetch也报上述错误
解决方法
- 一般情况下是以上错误都是因为挂着VPN导致端口冲突
- 目前遇到两类情况,解决办法如下。
1 网络本身无vpn,使用ShadowsocksR等工具科学上网
- 退出ShadowsocksR即可
- 缺点:访问github会变慢,毕竟把vpn关掉了。如果开vpn本身就是为了更快速的访问github,那这样的操作就很费劲,每次和远程仓库交互都要关掉vpn,搞完再打开,推荐2.1。
2 网络本身挂载vpn,如openwrt上安装了ShadowsocksR
- 解决办法有两种(推荐第一种)
2.1 修改项目目录中隐藏文件夹 .git 内的 config 文件
- 将 Project/.git/config 文件中ssh格式的url,修改为github仓库中https格式的url。如:> url = https://github.com/username/SpringBootWebTest.git![image-20220921101237310](https://img-blog.csdnimg.cn/img_convert/ef08756227d766d8d55ec6ce9d547c96.png)
- 因为开着vpn,代理端口走22;同时git的ssh一般也使用22端口,这样造成冲突;而git的https一般使用443端口,不会产生冲突。
- 一般企业防火墙会打开80和443这两个http/https协议的端口,因此在架设了企业防火墙的时候使用https可以很好地绕开安全限制使用git;但是对于ssh来说,企业防火墙很可能没打开22端口。
- 如果按以上操作修改之后报错
Invocation failed Server returned invalid Response.
,则到IDEA等软件的配置界面,选中Use credential helper
即可,参考。路径如下:> File -> Settings -> Version Control -> Git-> Use credential helper
2.2 修改openwrt的ShadowsocksR的访问控制配置
- 在访问控制的
不走代理名单
中加入github.com
,保存并应用,这样访问github的操作就与 1 中一样了,缺点也一样
其他
还有其他的不同情况下的解决方案,可以根据实际情况寻找对应的解决办法
本文转载自: https://blog.csdn.net/flower_48237/article/details/126967878
版权归原作者 whtli 所有, 如有侵权,请联系我们删除。
版权归原作者 whtli 所有, 如有侵权,请联系我们删除。