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

CircleCI构建测试出现权限错误,如何排查与修复?

CircleCI克隆GitHub仓库权限错误排查与修复

问题原因

你遇到的Load key "/home/circleci/.ssh/id_rsa": error in libcrypto和Permission denied (publickey)错误,核心原因是带密码短语的部署密钥无法被CircleCI自动解锁。CircleCI的构建环境默认没有密钥解锁的交互流程,也不会自动读取密码短语,导致密钥加载失败,无法完成GitHub的SSH认证。

修复步骤

方案1:替换为无密码短语的部署密钥(推荐)

这是最简单可靠的解决方式:

  • 生成新的无密码SSH密钥:
    打开本地终端执行以下命令,生成过程中所有提示直接按回车跳过(不设置密码短语):
    ssh-keygen -t ed25519 -C "circleci-deploy@your-project.com"
    
  • 更新GitHub部署密钥:
    进入GitHub仓库的「Settings → Deploy keys」页面,删除旧的带密码的部署密钥,将新生成的公钥(本地~/.ssh/id_ed25519.pub文件中的内容)粘贴进去,按需勾选「Allow write access」。
  • 更新CircleCI SSH密钥:
    进入CircleCI对应项目的「Project Settings → SSH Keys」页面,删除旧的SSH密钥,将新生成的私钥(本地~/.ssh/id_ed25519文件中的内容)粘贴并保存。

方案2:在CircleCI配置中添加密钥解锁流程(不推荐)

如果必须保留带密码短语的密钥,可通过环境变量和命令解锁:

  • 在CircleCI项目的「Project Settings → Environment Variables」中添加变量SSH_KEY_PASSPHRASE,值为你的密钥密码短语。
  • 修改.circleci/config.yml,在checkout步骤前添加解锁命令:
    jobs:
      build:
        docker:
          - image: cimg/base:stable
        steps:
          - run:
              name: Unlock SSH key
              command: |
                echo "$SSH_KEY_PASSPHRASE" | ssh-add -k ~/.ssh/id_rsa
          - checkout
          # 后续构建步骤...
    

报错日志

#!/bin/sh

Using SSH Config Dir '/home/circleci/.ssh'
git version 2.40.0
Cloning git repository
Cloning into '.'...
Load key "/home/circleci/.ssh/id_rsa": error in libcrypto
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

exit status 128

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 21:35:10