Git [Permission denied (publickey).] Windows 上的 Jenkins 问题

Jenkins issue with Git [Permission denied (publickey).] on Windows

我知道有数以千计的话题触及我的问题,但我已经与这个问题抗争了好几天,而且几乎没有任何进展 ;(.

我在 Windows 机器上安装了 Jenkins。
然后获取 Git 插件和 Git 本身。
一切都是我写作当天的最新版本。
我很高兴开始使用 Jenkins,但我未能配置我的 Bitbucket 存储库以供 Job 使用。

我将确切的路径设置为 git.exe(这似乎是最初出现问题的原因)[C:\Program Files\Git\cmd\git.exe]。

然后我尝试使用帐户凭据通过 HTTPS 访问存储库,这里出现许多奇怪的错误,所以我想让我们尝试使用 SSH。

我已经生成了 rsa 密钥,在 Bitbucket 存储库中设置 public 密钥。然后我在 Jenkins 中创建了凭据配置,用于使用密码进行 SSH 身份验证。
我这里有很多问题,所以为了临时解决方法,我明确设置了私钥的值。
终于到了我现在所在的地方:

+refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: Permission denied (publickey).
fatal: Could not read from remote repository.

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

当我尝试手动复制存储库时,它礼貌地询问我密码,然后复制完成。当 Jenkins 的工作完成时,就会发生上述情况。在作业脚本中的 %USERNAME% 和 %USERDOMAIN% 的帮助下,我得到了与手动执行时相同的值。

经过大量的时间我可以说我不能在 Jenkins 中使用 Git ;(

更新

我不相信事情会这么简单。正如 mainframer 提到的,我将整个 SSH 身份验证的密码短语留空并且它确实有效(存储库已克隆,即使 Jenkins 仍然在作业的配置页面中显示相同的错误)。我只是想知道这样设置的任何后果,但现在工作对我来说更有价值。

You mean leaving empty passphrase while generating keys and then also no passphrase config in Jenkins ssh credentials?

是的,因为 Jenkins 无法将密码提供给 ssh 会话。

但请确保 Jenkins 从服务使用您的帐户(而不是系统帐户)运行。它需要您的帐户才能在 %USERPROFILE%\.ssh\id_rsa(.pub)

中找到 ssh 密钥