Gitlab SSH执行Clone/Pull/Push操作提示cafile not found错误如何排查
问题核心定位
首先你遇到的报错前缀为remote:,说明错误由Gitlab服务端返回,与本地Git配置、本地SSL环境无关,这也是你修改本地http.sslverify等参数无效的根本原因。且问题仅对你的账号生效、其他用户正常,说明问题出在你的Gitlab账号级或你持有高权限的项目级配置上。
可能诱因
你此前调试CI/CD功能时,误在账号/项目层面配置了值为空的CA文件路径参数,Gitlab服务端处理你的SSH操作请求时,会加载你账号关联的自定义Git配置初始化HTTP客户端,读取到空的CA文件路径就会触发该报错。HTTP操作走的是Web请求验证逻辑,不会加载这部分自定义配置,所以不受影响。
排查解决步骤
- 登录Gitlab网页端,进入个人设置页面,找到「Git配置」(Git Configuration)板块,检查是否存在
http.sslCAInfo、http.cafile类的配置项,如果存在直接删除该配置,保存后重试SSH操作即可。 - 如果个人配置中无相关项,逐一排查你拥有维护者及以上权限的项目,进入项目设置->CI/CD->变量页面,检查是否设置了值为空的
GIT_SSL_CAINFO全局变量,删除该变量后重试。 - 若上述操作均无效果,联系Gitlab实例管理员,让管理员执行以下命令查询你的账号关联的内置Git配置:
如果返回结果中存在空值的CA文件配置,管理员可直接在后台帮你清除该异常配置。gitlab-rails runner "puts User.find_by_username('替换为你的Gitlab用户名').gitlab_ci_builtin_gitconfig"
内容的提问来源于stack exchange,提问作者obalasz
相关产品推荐
相关产品推荐

