从Jenkins服务器连接到Bitbucket存储库

17

目前我正在尝试使用在Jenkins中安装的Git插件来创建与我的Bitbucket存储库的连接。

当我输入存储库URL时,我会收到如下所示的消息通知:

"Failed to connect to repository : Command "ls-remote -h git@bitbucket.org:safe2school-ondemand/s2s-android-padres.git HEAD" returned status code 128: stdout: stderr: Permission denied (publickey). fatal: The remote end hung up unexpectedly"

尝试通过git从jenkins连接到bitbucket仓库

我已经将Jenkins安装在Apache Tomcat容器上,该容器位于路径/srv/apache-tomcat。

系统中有一个根SSH密钥,我将此密钥添加到了Bitbucket中。感谢您的支持:)


你为Jenkins用户设置了SSH密钥吗?https://dev59.com/7WzXa4cB1Zd3GeqPQB2h - KeepCalmAndCarryOn
请注意,凭据支持现在已内置到git插件中。截图显示您未为此存储库选择任何凭据。 - Christopher Orr
克里斯托弗,我需要添加哪些凭据,在这个领域中...我的Bitbucket账户的用户名和密码。我不这么认为... - bgarcial
1
如果您不想使用用户密码根目录,我曾经遇到过类似的问题,并在http://stackoverflow.com/questions/34420362/jenkins-get-code-from-bitbucket-with-ssh/34889442#34889442中发布了一个答案。简而言之,假设您的密钥都设置正确,请尝试从存储库URL的末尾删除“.git”。 - Jeff Richards
2个回答

30

您可以尝试使用用户密码验证凭据,这是该插件提供给我们的另一种选择。

  1. 点击“添加”按钮。

图片描述

  1. 在“类型”输入中选择“带密码的用户”。
  2. 添加Bitbucket账户凭证。

图片描述

  1. 使用' https '协议输入Bitbucket repo url。

图片描述

最后,如无错误(例如在repo url输入下方出现红色消息),则表示该过程已成功。


清晰信息。谢谢! - user9869932
1
当在 Bitbucket 账户上启用了双因素身份验证,是否需要执行任何其他步骤? - Techroshni
@Techroshni 我不确定,但我猜想当您设置2fa作为凭据时,Jenkins会显示正确的表单。无论如何,如果您尝试过,请在此答案中添加更新。 - geoom
1
我将输入类型从“使用密码的用户”更改为“带有私钥的SSH用户名”,并利用私钥设置了我的仓库的身份验证。 - Techroshni

1
除了@geoom的答案外,双因素认证用户可以使用“应用程序密码”来进行身份验证。
应用程序密码是用户帐户的替代密码,您可以将其用于脚本和集成工具,以避免将真实密码放入配置文件中。
应用程序密码旨在用于单个目的,具有有限的权限,因此它们不需要两步验证(2SV)。这意味着双因素认证用户可以使用应用程序密码调用其Bitbucket帐户的API,并将Bitbucket与其他工具(如Sourcetree和Bamboo)集成。

1
如果从Bitbucket中删除该用户(即离开公司),这些密码会消失吗? - Adam Hughes
@AdamHughes,我在这里插一句话,因为我们公司也有同样的问题。我们使用Jenkins Bitbucket插件使用我的凭据(和应用程序密码)来轮询SCM更改。我们正在寻找用属于Jenkins的通用SSH密钥替换它,但似乎这是不可能的。我找到了以下资源,您可能会发现有用,并且很明显BitBucket希望使用命名帐户而不是服务帐户构建集成:https://community.atlassian.com/t5/Jira-questions/how-do-you-create-a-service-account/qaq-p/883530 - justin.saliba
谢谢Justin,我会去看看这些。 - Adam Hughes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接