Gitlab配置域名及SSL后克隆仓库报错Internal API unreachable求助
报错含义
这个报错是Gitlab SSH服务完成公钥认证后,尝试调用内部API拉取用户权限、仓库访问授权等信息时请求失败返回的提示。SSH公钥认证仅完成了SSH协议层面的身份校验,Gitlab还需要通过内部API确认当前用户对目标仓库的操作权限,这一步调用失败就会触发该错误。
常见问题原因
gitlab.rb配置中external_url未同步更新:仅修改了反向代理层的域名和SSL配置,没有将gitlab.rb里的external_url修改为新的带HTTPS协议的自定义域名,导致Gitlab内部服务之间调用时仍请求旧地址,或未携带正确的SSL相关配置导致请求失败。- 自签名SSL证书未加入系统信任:如果自定义域名使用的是自签名证书,没有将证书放到Gitlab的信任证书目录(默认
/etc/gitlab/trusted-certs/)并重新配置,内部服务调用HTTPS协议的内部API时会因证书不受信任被拦截,导致API不可达。 - 核心服务未完成重启:修改配置后仅重启了Nginx等反向代理服务,没有执行
gitlab-ctl reconfigure和gitlab-ctl restart重启Gitlab核心服务,服务仍读取旧配置发起内部API请求。 - 本地请求规则拦截:服务器本地hosts未将新自定义域名指向127.0.0.1,或者防火墙、安全组规则拦截了本地对Gitlab内部API端口(默认8080)的请求,导致内部调用链路不通。
gitlab-shell配置异常:负责处理SSH请求后续逻辑的gitlab-shell组件配置中的API地址未同步更新为新域名,导致请求发送到错误地址。
内容的提问来源于stack exchange,提问作者jodevw
相关产品推荐
相关产品推荐

