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.

解决过程

  1. 确认网络问题

    • 由于端口 22 被阻止,改用端口 443 进行 SSH 连接。
  2. 调整 SSH 配置

    • ~/.ssh/config 文件中添加或调整以下内容:
      Host github.com
          HostName ssh.github.com
          Port 443
          User git
          IdentityFile ~/.ssh/github-auth
          AddKeysToAgent yes
      
  3. 验证密钥配置

    • 确保密钥文件 ~/.ssh/github-auth 存在并已正确加载到 SSH 代理中:
      ssh-add ~/.ssh/github-auth
      ssh-add -l
      
  4. 上传公钥到 GitHub

  5. 测试 SSH 连接

    • 使用以下命令验证 SSH 连接:
      ssh -T -p 443 git@ssh.github.com
      
    • 显示 Hi hk416hasu! You've successfully authenticated... 表示 SSH 配置成功。
  6. 检查 Git 配置

    • 确保 git remote -v 显示正确的远程仓库地址(使用 SSH):
      origin  git@github.com:hk416hasu/nodejs.git (fetch)
      origin  git@github.com:hk416hasu/nodejs.git (push)
      
  7. 成功推送代码

    • 确认本地分支与远程分支同步后,执行 git push 成功完成代码推送。

总结

  1. SSH 配置要点

    • 使用 ~/.ssh/config 简化 SSH 配置并指定密钥文件。
    • 当端口 22 不可用时,可以通过 ssh.github.com 和端口 443 连接。
  2. 问题排查步骤

    • 测试 SSH 连接 (ssh -T) 确保密钥配置正确。
    • 确认远程仓库地址是否为 SSH 地址。
    • 如果推送失败,先同步拉取远程分支 (git pull) 再推送。
  3. 实践经验

    • 遇到问题时,分步排查(网络、SSH 配置、Git 配置)是关键。
    • 调试工具如 ssh -v 提供了重要线索。

希望这次总结能帮助您在未来遇到类似问题时快速解决!如果还有其他问题,随时欢迎交流 😊。

posted @   hk416hasu  阅读(121)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示