执行git push推送代码到GitHub远程仓库报SSH端口22错误如何解决
Git执行push推送GitHub报错解决方案
你遇到的报错信息如下:
ssh: connect to host github.com port 22: Undefined error: 0 fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
该报错核心原因是SSH协议无法正常连接GitHub的22端口,或仓库权限、地址配置异常,按以下步骤逐一排查即可解决:
步骤1:验证SSH基础连通性
在终端执行以下命令测试SSH连接状态:ssh -T git@github.com
- 如果仍返回端口22连接错误,说明是本地网络/防火墙限制了22端口访问,直接走步骤2修复
- 如果返回
Hi 你的GitHub用户名! You've successfully authenticated, but GitHub does not provide shell access.,说明SSH连接正常,跳转至步骤3排查仓库配置问题
步骤2:修复SSH 22端口连接失败问题
两种方案任选其一即可:
方案A:切换远程仓库为HTTPS协议
执行以下命令修改远程仓库地址,将命令中占位的用户名、仓库名替换为你自己的实际内容:git remote set-url origin https://github.com/你的GitHub用户名/你的仓库名.git
修改完成后重新执行git push -u origin main即可
方案B:配置SSH走GitHub 443端口
如果你需要保留SSH协议,可修改SSH配置绕开22端口限制:
- 打开本地用户目录下的
.ssh文件夹,编辑(不存在则新建)名为config的无后缀文件 - 在文件中添加如下内容:
Host github.com Hostname ssh.github.com Port 443 User git
- 保存文件后重新执行
ssh -T git@github.com验证,连接成功后即可正常推送
步骤3:SSH连通正常仍报错的排查
- 执行
git remote -v查看当前绑定的远程仓库地址,确认和GitHub上对应仓库的地址完全一致,地址错误的话用步骤2的git remote set-url命令修正 - 确认本地SSH公钥已添加到GitHub账户:打开GitHub账户设置的「SSH and GPG keys」页面,确认你本地
.ssh/id_rsa.pub文件的全部内容已经添加到密钥列表,未添加的话复制粘贴进去再重试推送即可
内容的提问来源于stack exchange,提问作者Yefim Blokh
相关产品推荐
相关产品推荐

