You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从GitHub私有仓库拉取Go包,报ssh无法解析主机名错误

问题排查解决步骤
  • 第一步:验证基础SSH连通性
    直接执行ssh -T git@github.com,如果返回「Hi 你的用户名! You've successfully authenticated...」则SSH配置正常,否则先排查SSH层面问题:
    • 执行nslookup github.com确认系统DNS能正常解析GitHub地址,解析失败请修改系统DNS配置
    • 检查~/.ssh/config文件,确认没有错误的GitHub Host配置(比如错填Hostname为不存在的地址)
    • 确认私钥文件权限为600,对应公钥已经上传到你的GitHub账户
  • 第二步:校验Git重写规则配置
    执行git config --global --get url."git@github.com:".insteadOf,确认返回值为https://github.com/,没有多/少字符的错误;如果存在多Git配置层级,执行git config --list --show-origin检查是否有其他规则覆盖了全局配置。
  • 第三步:修正go get命令写法
    你给出的脚本中go get package "xxx"多了多余的package参数,该参数会被Go识别为包路径的一部分,最终拼接出错误的地址触发主机解析失败,正确写法为:
    go get "github.com/${GITHUB_ORG}/${GITHUB_REPO}/${GO_PACKAGE}"
    
  • 第四步:确认环境变量配置正确
    分别执行echo $GOPRIVATE、echo $GITHUB_ORG,确认值与预期的组织地址完全一致,没有拼写、大小写、特殊字符错误。
  • 第五步:确认SSH密钥生效范围
    你脚本中eval $(ssh-agent)、ssh-add的操作仅在当前脚本的Shell进程内生效,如果你在终端直接执行go get,需要在当前终端会话中先执行一遍这两个命令,或者直接在~/.ssh/config中配置固定密钥,无需每次手动添加:
    Host github.com
      HostName github.com
      User git
      IdentityFile 你的私钥文件绝对路径
      IdentitiesOnly yes
    
  • 第六步:打印详细日志定位问题
    执行go get -v "你的私有包地址",查看日志中实际请求的Git地址,确认是否有拼接错误的主机名。

内容的提问来源于stack exchange,提问作者talkersoft

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 02:27:02