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

GitHub Actions加载SSH密钥报错:密钥在GitLab可用但执行时为空

排查GitHub Actions中SSH密钥Secrets为空的问题
  • Secrets配置有误
    先去仓库的「Settings > Secrets and variables > Actions」页面确认:是否已经添加了名为EBKEY的Secret,且内容是完整的SSH私钥。注意GitHub Secrets区分大小写,变量名必须完全匹配(比如不能写成ebkey或EbKey)。

  • Fork仓库无法继承原仓库Secrets
    如果你的流水线运行在Fork出来的仓库里,GitHub默认不会把原仓库的Secrets同步过来。得自己在Fork仓库的Settings里重新添加EBKEY这个Secret。

  • 工作流里的Secret引用语法错了
    检查工作流文件里的引用代码:必须是${{ secrets.EBKEY }},别少写大括号,也别把secrets写成单数的secret。另外,如果是在bash脚本的单引号里引用,变量不会被解析,得换成双引号包裹。

  • SSH密钥的格式被破坏了
    虽然密钥在GitLab能用,但粘贴到GitHub Secrets时可能丢了换行。要确保Secret里完整保留私钥的所有内容,包括开头的-----BEGIN RSA PRIVATE KEY-----和结尾的-----END RSA PRIVATE KEY-----,还有中间的换行。要是还是有问题,可以把私钥先base64编码,在流水线里解码后写入文件:

    echo "${{ secrets.EBKEY }}" | base64 -d > /home/runner/.ssh/id_rsa
    
  • 工作流权限不够读不到Secrets
    检查工作流的权限设置,确保有读取Secrets的权限。可以在工作流文件开头加上:

    permissions:
      contents: read
      id-token: write
    

    或者根据实际需求调整权限,避免因为权限不足导致读不到Secrets。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:02:44