在Ubuntu 22.04 Docker镜像中执行gh auth命令遇证书验证错误
问题成因分析
这个x509证书错误的核心原因是Ubuntu官方Docker镜像默认未预装完整的根CA证书集合。
当gh命令向GitHub的API(https://api.github.com/)发起请求时,需要验证服务器返回的SSL证书是否由可信的根CA签发。但ubuntu:latest这类基础镜像为了轻量化,只包含最基础的系统组件,缺少ca-certificates包——这个包包含了全球主流的可信根CA证书,是系统验证SSL证书合法性的基础。
没有这些根CA证书,系统无法确认GitHub SSL证书的签发机构是否可信,因此抛出x509: certificate signed by unknown authority错误。
验证与临时解决
你可以在容器内先安装ca-certificates包再执行命令,就能解决这个问题:
docker run -it ubuntu:latest apt-get update && apt-get -y install gh ca-certificates echo '<my token>' > token gh auth login --with-token < token
注:你提到的通过GH_TOKEN环境变量认证的方式,本质上同样依赖CA证书来验证API请求的SSL证书,只是认证流程不同——如果没装ca-certificates,用环境变量的方式也会遇到相同的证书验证错误。
内容的提问来源于stack exchange,提问作者sage
相关产品推荐
相关产品推荐

