Github无法连接?
git push不成功?有可能是
- git代理设置不对,是正常的网络问题
- github私钥没有被正确加载
- github.com 22端口超时
- 等
本blog重点解决第三种:github.com port 22 超时
问题背景
在执行 git push
时遇到了以下错误:
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
解决过程
-
确认网络问题:
- 由于端口 22 被阻止,改用端口 443 进行 SSH 连接。
-
调整 SSH 配置:
- 在
~/.ssh/config
文件中添加或调整以下内容:Host github.com HostName ssh.github.com Port 443 User git IdentityFile ~/.ssh/github-auth AddKeysToAgent yes
- 在
-
验证密钥配置:
- 确保密钥文件
~/.ssh/github-auth
存在并已正确加载到 SSH 代理中:ssh-add ~/.ssh/github-auth ssh-add -l
- 确保密钥文件
-
上传公钥到 GitHub:
- 确保
~/.ssh/github-auth.pub
的内容已添加到 GitHub 的 SSH Keys 设置页面。
- 确保
-
测试 SSH 连接:
- 使用以下命令验证 SSH 连接:
ssh -T -p 443 git@ssh.github.com
- 显示
Hi hk416hasu! You've successfully authenticated...
表示 SSH 配置成功。
- 使用以下命令验证 SSH 连接:
-
检查 Git 配置:
- 确保
git remote -v
显示正确的远程仓库地址(使用 SSH):origin git@github.com:hk416hasu/nodejs.git (fetch) origin git@github.com:hk416hasu/nodejs.git (push)
- 确保
-
成功推送代码:
- 确认本地分支与远程分支同步后,执行
git push
成功完成代码推送。
- 确认本地分支与远程分支同步后,执行
总结
-
SSH 配置要点:
- 使用
~/.ssh/config
简化 SSH 配置并指定密钥文件。 - 当端口 22 不可用时,可以通过
ssh.github.com
和端口 443 连接。
- 使用
-
问题排查步骤:
- 测试 SSH 连接 (
ssh -T
) 确保密钥配置正确。 - 确认远程仓库地址是否为 SSH 地址。
- 如果推送失败,先同步拉取远程分支 (
git pull
) 再推送。
- 测试 SSH 连接 (
-
实践经验:
- 遇到问题时,分步排查(网络、SSH 配置、Git 配置)是关键。
- 调试工具如
ssh -v
提供了重要线索。
希望这次总结能帮助您在未来遇到类似问题时快速解决!如果还有其他问题,随时欢迎交流 😊。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了