尝试将 Git 存储库添加到 Jenkins 时出现访问问题

Access issues when trying to add Git repository to Jenkins

我正在 Jenkins 中创建管道。当我尝试添加存储库 URL 时,出现以下错误:

Failed to connect to repository : Command "git.exe ls-remote -h -- git@bitbucket.org:somename/myproject.git HEAD" returned status code 128: stdout: stderr: Host key verification failed. fatal: Could not read from remote repository.

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

显示我添加它的位置的屏幕截图:

我在这里更改了存储库名称作为示例,但我正在访问的存储库是有效的并且public,任何人都可以访问。

谷歌搜索不断回到 ssh 问题。我不确定这是否与我有关。在我执行此操作的机器上,我可以处理该回购(pull/push 通过终端或 ide)因为我已经为我的 bitbucket 设置了 ssh 密钥并且它工作正常。

我是否应该为 Jenkins 单独设置另一组 ssh 密钥?我很困惑。请问我可以得到一些帮助吗?谢谢。

编辑:

请注意,如果我添加 github 存储库没有问题,例如,如下所示: https://github.com/bradtraversy/vanilla-parcel-boilerplate.git

根据您的评论,这适用于无需任何身份验证的 https,但您仍然需要通过 ssh 连接以用于其他目的和用途。要能够连接,您必须:

  • 注册远程主机密钥以被识别为 Jenkins 用户系统帐户的已知主机
  • 在 Jenkins GUI 中注册私钥作为凭据以在远程目标上进行身份验证

接受主机密钥作为已知主机

最简单的方法是使用 ssh 连接到您的 Jenkins 服务器并成为 jenkins 系统用户。从那里使用 ssh git@bitbucket.org 启动到目标服务器的 ssh 连接。你会得到如下提示

The authenticity of host 'bitbucket.org (2406:da00:ff00::22c5:2ef4)' can't be established.
RSA key fingerprint is SHA256:zzXQOXSRBEiUtuE8AikJYKwbHaxvSc0ojez9YXaGp1A.
Are you sure you want to continue connecting (yes/no)?

回答是将主机密钥存储在您的 known_hosts 文件中。您可以取消其余的连接操作。

注册私钥。

您需要在 Jenkins 中注册您的 ssh 私钥作为凭据。请参阅 documentation。完成后,凭据将显示在存储库 url 下的下拉列表中。 Select 用于连接。