将项目上传github(Git 推送 GitHub 时 “Connection was reset” 问题的实践记录)
问题背景:
在尝试将本地项目(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 端口仍被拦截,导致推送失败。
解决步骤:
- 清除 Git 代理配置(避免旧代理干扰)
若之前配置过代理,需先清除,避免影响后续操作:
powershell
git config --global --unset http.proxy
git config --global --unset https.proxy
- 生成 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
- 测试 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…”,说明推送开始,问题解决。
更多推荐
所有评论(0)