问题背景:
在尝试将本地项目(ecosystem_restoration_system)推送到 GitHub 仓库时,执行 git push 报错:

fatal: unable to access ‘https://github.com/xxx/xxx.git/’: Recv failure: Connection was reset
尽管 ping github.com 显示网络可连通(延迟 112ms,无丢包),但 HTTPS 协议的 443 端口仍被拦截,导致推送失败。

解决步骤:

  1. 清除 Git 代理配置(避免旧代理干扰)
    若之前配置过代理,需先清除,避免影响后续操作:
powershell
git config --global --unset http.proxy  
git config --global --unset https.proxy
  1. 生成 SSH 密钥(ED25519 算法)
    通过 SSH 密钥认证,替代 HTTPS 的账号密码验证:

powershell

生成密钥(邮箱替换为你的GitHub注册邮箱)

ssh-keygen -t ed25519 -C "邮箱地址"  

按提示回车(默认路径、空密码,简化操作)

生成后,公钥存储在 C:\Users\32591.ssh\id_ed25519.pub,私钥在 id_ed25519。
3. 将公钥添加到 GitHub 账户
复制公钥内容:
powershell

Get-Content ~/.ssh/id_ed25519.pub 

输出类似:
plaintext
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5… 00000000@qq.com

在 GitHub 配置公钥:
登录 GitHub → 头像 → Settings → 左侧 SSH and GPG keys → New SSH key。
粘贴公钥内容,填写标题(如 “本地设备”),保存。
4. 替换远程仓库为 SSH 链接
移除旧的 HTTPS 远程关联,重新绑定 SSH 链接:

powershell

移除旧远程仓库(origin是默认名称)

git remote rm origin 

添加SSH格式的远程仓库(替换为你的仓库地址)

git remote add origin git@github.com:ssy09060137/ecosystem-restoration-system.git  
  1. 测试 SSH 连接(验证认证)
    执行以下命令,确认 SSH 认证成功:

powershell
ssh -T git@github.com

成功提示:

plaintext
Hi ssy09060137! You’ve successfully authenticated, but GitHub does not provide shell access.
6. 推送代码(最终解决)
重新执行推送,此时通过 SSH 协议(22 端口)传输,绕开 443 限制:

powershell

git push -u origin main  

输出显示 “Enumerating objects… Writing objects…”,说明推送开始,问题解决。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐