从 Jenkins 上的 GitHub 克隆:无法加载 PEM 客户端证书

Cloning from GitHub on Jenkins: could not load PEM client certificate

我设置了一个构建服务器并想在 Jenkins 中克隆一个项目。

我收到以下错误:

fatal: unable to access 'https://github.com/habitat-sh/sample-node-app/': could not load PEM client certificate, LibreSSL error error:02FFF00D:system library:func(4095):Permission denied, (no key found, wrong pass phrase, or wrong file format?)

它在 public GitHub 上,不需要证书,当我在终端上克隆时一切正常。此外,curl 工作没有任何问题。

您知道导致该问题的原因吗?尝试了很多堆栈溢出解决方案,例如将 git config --global http.sslVerify 设置为 false,但其中 none 正在工作

(OS 是 macOS)

我能够自己解决问题。问题是,Jenkins 用户无法访问我在 GitConfig

中设置的 ssl 证书
git config --global http.sslCert "~/Documents/certificates/cert.crt"
git config --global http.sslKey "~/Documents/certificates/cert.key"
git config --global http.sslCaInfo "~/Documents/certificates/cert-ca.crt"

令人惊讶的是,没有显示权限错误,这使得这个问题很难调试。

移动 Jenkins 用户目录中的证书很有帮助。

我遇到了同样的问题,但我在执行以下操作后才修复:

brew 卸载 git

接下来,我回到 repo 目录并在终端中执行 git fetch,Keychain 访问打开弹出窗口,要求我在凭据标题中输入密码。我输入密码并单击“始终允许”按钮。之后,所有分叉或克隆的存储库都已成功更新 git pull.

我希望这对其他人有帮助。

我的配置:

  • 大苏尔版本 11.4
  • git 版本 2.30.1(苹果 Git-130)

注意事项: 几个月前我在我的钥匙串系统中添加了 GitLab self-signed 有效证书