Git克隆GitHub仓库HTTPS与SSH方式均报错无法读取远程仓库求助
Git克隆GitHub仓库双报错排查解决
两个报错属于不同链路的独立问题,分别对应HTTPS协议配置异常、SSH协议密钥配置异常,按对应方案修复即可:
报错1:HTTPS克隆触发SSL证书问题
对应报错信息:
fatal: unable to access 'https://github.com/xxx/xxx.git/': SSL certificate problem: unable to get local issuer certificate
触发原因是本地Git无法验证GitHub站点的SSL证书合法性,常见于本地Git版本过旧自带CA证书库不全、处于开启了SSL拦截的公司/校园内网环境。
解决方法按优先级选:
- 优先永久修复:先把本地Git升级到最新正式版,新版Git内置的CA证书库默认包含GitHub使用的根证书,升级后多数情况直接恢复正常;如果是内网环境,找网络管理员获取内网的根证书文件,执行
git config --global http.sslCAInfo "C:\path\to\your\root-cert.crt"指定Git信任的根证书路径即可。 - 临时测试方案:如果只是临时克隆测试,可以执行
git config --global http.sslVerify false临时关闭SSL验证,克隆完成后务必执行git config --global http.sslVerify true重新开启验证,长期关闭会存在中间人攻击的安全风险。
报错2:SSH克隆触发公钥权限拒绝
对应报错信息:
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
触发原因是GitHub端没有存储你本地的SSH公钥,无法验证你的访问权限,按以下步骤配置即可:
- 先检查本地是否已生成SSH密钥对:在PowerShell中执行
ls ~/.ssh/,查看输出结果中是否存在id_ed25519和id_ed25519.pub两个配对文件(老版本密钥可能是id_rsa和id_rsa.pub),后缀为.pub的是公钥文件。 - 没有密钥对就执行生成命令:
ssh-keygen -t ed25519 -C "你的GitHub账号绑定邮箱",执行后全程按回车走默认配置即可,本地自用不需要额外设置密钥密码。 - 上传公钥到GitHub:用记事本打开上一步提到的
.pub公钥文件,全选复制里面的全部内容,登录GitHub账号后进入设置页,找到「SSH and GPG keys」分类,新建一个SSH Key,把复制的公钥内容粘贴到对应输入框保存。 - 验证配置:在PowerShell执行
ssh -T git@github.com,如果返回Hi 你的GitHub用户名! You've successfully authenticated, but GitHub does not provide shell access.的提示,就说明SSH配置生效,重新执行克隆命令即可正常拉取代码。
内容的提问来源于stack exchange,提问作者Fabio Francisco Bergami
相关产品推荐
相关产品推荐

