当前位置: 首页 > news >正文

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

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

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

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

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

添加以下内容:

Host github.comHostname ssh.github.comPort 443User 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.comProxyCommand 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 的输出结果以便进一步分析。

相关文章:

  • Vulkan模型查看器设计:相机类与三维变换
  • 贪心算法之集合覆盖问题
  • 代码随想录|图论|08孤岛的总面积
  • Webpack 自定义插件开发指南:构建流程详解与实战开发全攻略
  • Apache Kafka 面试应答指南
  • 《人间词话》PPT课件
  • 免费无广告PDFCreator:虚拟打印软件一键转 PDF/PNG/JPG
  • K8s port、targetPort和nodePort区别
  • AI歌手Yuri出道:GenAI,透露着新的AI产业机遇?
  • 【水印论文阅读1】将水印规则的定义域从离散的符号空间转移到连续的语义空间
  • 在shell中直接调用使用R
  • Vite 打包原理详解 + Webpack 对比
  • 电子电气架构 --- 涵盖“诊断与 ECU 平台”领域特有项目要求(下)
  • FPGA 40G到100G光纤数据传输QSFP
  • Netty入门案例:简单Echo服务器(同步)
  • 【Linux高级全栈开发】2.2.3 UDP的可靠传输协议QUIC
  • 路径遍历攻击与修复
  • 非功能测试
  • 【论文阅读 | CVPR 2025 |MambaVision:一种混合 Mamba-Transformer 视觉骨干网络】
  • 【Android】蓝牙相关