尝试将 Git 存储库添加到 Jenkins 时的访问问题
Posted
技术标签:
【中文标题】尝试将 Git 存储库添加到 Jenkins 时的访问问题【英文标题】:Access issues when trying to add Git repository to Jenkins 【发布时间】:2020-08-01 01:00:17 【问题描述】:我正在 Jenkins 中创建一个管道。当我尝试添加存储库 URL 时,出现以下错误:
无法连接到存储库:命令“git.exe ls-remote -h -- git@bitbucket.org:somename/myproject.git HEAD" 返回状态码 128:stdout:stderr:主机密钥验证失败。致命的:不能 从远程存储库中读取。
请确保您拥有正确的访问权限和存储库 存在。
屏幕截图显示我在哪里添加它:
我在这里更改了 repo 名称作为示例,但我正在访问的 repo 是有效且公开的,任何人都可以访问。
谷歌搜索不断回到 ssh 的问题。我不确定它是否与我有关。在我正在执行此操作的机器上,我可以处理该存储库(通过终端或 ide 拉/推),因为我已经为我的 bitbucket 设置了 ssh 密钥并且它工作正常。
我应该为 Jenkins 单独设置另一组 ssh 密钥吗?我很困惑。请问我可以得到一些帮助吗?谢谢。
编辑:
如果我添加一个 github 存储库,请注意没有问题,例如如下: https://github.com/bradtraversy/vanilla-parcel-boilerplate.git
【问题讨论】:
如果这是一个公共 repo(允许匿名读取),请使用 http(s) url 而不是 ssh。不能匿名使用 ssh。如果您仍然需要/想要使用 ssh,则必须 1) 在/home/jenkins/.ssh/known_hosts
中添加目标服务器主机密钥(手动或通过从命令行与 jenkins 用户启动第一个 ssh 连接)2) 配置私有jenkins 中用于该连接的密钥凭据。
@Zeitounator 谢谢。它确实适用于 https。对于您的第 1 点,手动添加我已经用来连接到 bitbucket 的当前 ssh 密钥值?另外 .ssh 是我自己添加的吗?因为即使我可以看到其他隐藏文件夹,它也不存在。
这能回答你的问题吗? Git error: "Host Key Verification Failed" when connecting to remote repository
***.com/…
【参考方案1】:
根据您的评论,这适用于 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 文件中。您可以取消其余的连接操作。
注册一个私钥。
您需要将您的私有 ssh 密钥注册为 Jenkins 中的凭证。请参阅documentation。完成后,凭证将显示在存储库 URL 下的下拉列表中。选择它以将其用于连接。
【讨论】:
以上是关于尝试将 Git 存储库添加到 Jenkins 时的访问问题的主要内容,如果未能解决你的问题,请参考以下文章
如何将丢失的 gradle-wrapper.jar 添加回 Git 存储库以供 Jenkins 完成其工作