Git推送时出现Connection reset by 140.82.121.4 port 22错误的解决咨询
Git推送时SSH连接重置(Connection reset by 140.82.121.4 port 22)的解决办法
切换到443端口连接GitHub
140.82.121.4是GitHub的SSH服务器,很多网络会拦截22端口,改用443端口大概率能解决。两种操作方式:- 单独修改当前仓库的远程地址:
git remote set-url origin git@ssh.github.com:443/你的用户名/仓库名.git - 全局配置所有GitHub连接都用443端口:编辑
~/.ssh/config文件,添加以下内容:Host github.com Hostname ssh.github.com Port 443
- 单独修改当前仓库的远程地址:
开启SSH心跳保活
有些防火墙会主动断开长时间无数据的连接,给SSH加心跳包能避免这个问题。同样编辑~/.ssh/config,添加:Host github.com ServerAliveInterval 30 ServerAliveCountMax 10意思是每30秒发一次心跳,最多尝试10次,确保连接不被断开。
排查本地网络拦截
暂时关掉VPN、代理软件,或者本地防火墙,测试推送是否正常。如果必须用代理,要确保SSH代理配置正确,比如用socks代理的话,在~/.ssh/config里加:ProxyCommand nc -x 127.0.0.1:1080 %h %p(替换成你的代理地址和端口)排查SSH连接细节
执行ssh -T git@github.com测试基础连接是否稳定;用ssh -vvv git@github.com看详细连接日志,能找到连接中断的具体环节;推送时加git push -v,查看推送过程的详细输出,定位错误点。重置SSH密钥
密钥损坏或权限不对也可能导致连接异常,重新生成密钥:ssh-keygen -t ed25519 -C "你的邮箱地址",然后把新生成的~/.ssh/id_ed25519.pub里的内容复制到GitHub账户的SSH密钥列表中。
内容的提问来源于stack exchange,提问作者Rejep
相关产品推荐
相关产品推荐

