ssh -T git@github.com失败后解决方案

发布于:2025-06-28 ⋅ 阅读:(17) ⋅ 点赞:(0)

这个错误表示你的 SSH 连接无法到达 GitHub 服务器。以下是详细解决方案,按照优先级排序:

首选解决方案:使用 SSH over HTTPS(端口 443)

这是最有效的解决方案,因为许多网络会阻止 22 端口:

# 编辑 SSH 配置文件
nano ~/.ssh/config

添加以下内容:

Host github.com
  Hostname ssh.github.com
  Port 443
  User git

保存后测试连接:

ssh -T git@github.com

如果看到 “You’ve successfully authenticated” 消息,即可正常使用 git push

替代解决方案:切换到 HTTPS

如果 SSH 仍然失败:

# 查看当前远程 URL
git remote -v

# 切换到 HTTPS
git remote set-url origin https://github.com/用户名/仓库名.git

# 然后推送
git push origin master

系统会提示输入 GitHub 用户名和密码(建议使用个人访问令牌代替密码)

完整排查步骤:

  1. 检查网络连接

    ping github.com
    telnet github.com 22  # 或使用 nc -zv github.com 22
    

    如果无法连接,尝试:

    • 关闭 VPN/防火墙
    • 切换网络(如手机热点)
    • 等待网络恢复
  2. 验证 SSH 配置

    # 检查密钥是否加载
    ssh-add -l
    
    # 如果没有密钥,添加默认密钥
    ssh-add ~/.ssh/id_rsa  # 或你的密钥文件
    
  3. 更新 known_hosts

    ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
    
  4. 测试详细连接

    ssh -Tv git@github.com
    

    查看输出中 “Connection refused” 出现的具体位置

高级解决方案:

  1. 使用代理(如果处于受限网络):

    # 在 ~/.ssh/config 添加
    Host github.com
      ProxyCommand nc -X connect -x 代理IP:端口 %h %p
    
  2. 更新 Git 和 SSH

    # macOS
    brew upgrade git openssh
    
    # Windows
    git update-git-for-windows
    
  3. 创建新仓库测试

    mkdir test-repo && cd test-repo
    git init
    touch test.txt
    git add . && git commit -m "test"
    git remote add origin git@github.com:用户名/test-repo.git
    git push -u origin master
    

临时解决方案:

# 使用 git 内置的 HTTPS 端口回退
git config --global url."https://github.com/".insteadOf git@github.com:
git config --global url."https://".insteadOf git://

重要提示:如果使用企业网络/校园网,可能需要联系网络管理员开放 22 或 9418 端口。GitHub 状态可查看 https://www.githubstatus.com

完成这些步骤后,应该能成功推送代码。如果问题仍然存在,请提供 ssh -Tv git@github.com 的输出结果以便进一步分析。


网站公告

今日签到

点亮在社区的每一天
去签到