3

我似乎一直试图将 Jenkins(Ubuntu 的 EC2 AWS 实例)与 Bitbucket 链接起来。

每当我尝试构建我的项目(我已经在 J​​enkins 上安装了 git 插件)时,我都会得到......

Building in workspace /var/lib/jenkins/jobs/Google adwords/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Google adwords/workspace - hudson.remoting.LocalChannel@2c473996
Using strategy: Default
Cloning the remote Git repository
Cloning repository origin
ERROR: Error cloning remote repo 'origin' : Could not clone git@bitbucket.org:DAVID99WORLD/assessme.git
hudson.plugins.git.GitException: Could not clone git@bitbucket.org:DAVID99WORLD/assessme.git
    at hudson.plugins.git.GitAPI.clone(GitAPI.java:268)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1122)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1064)
    at hudson.FilePath.act(FilePath.java:842)
    at hudson.FilePath.act(FilePath.java:824)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1064)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1256)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)
    at hudson.model.Run.execute(Run.java:1502)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin git@bitbucket.org:DAVID99WORLD/assessme.git /var/lib/jenkins/jobs/Google adwords/workspace" returned status code 128:
stdout: Cloning into '/var/lib/jenkins/jobs/Google adwords/workspace'...

stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly

很好 - 看起来它正在尝试通过 ssh 但找不到密钥。所以我正在尝试生成密钥,在~/.ssh我有文件的情况下authorized_keysknown_hosts但根据这里的文档......

https://confluence.atlassian.com/display/BITBUCKET/How+to+install+a+public+key+on+your+bitbucket+account

我应该在 ~/.ssh 下有一个名为 id_rsa 的文件

我一直在关注文档...

https://confluence.atlassian.com/display/BITBUCKET/Using+the+SSH+protocol+with+bitbucket

但它看起来几乎完成了一半,或者我错过了将密钥放入正确文件的位置。

首先 - 我的假设是否正确这是一个 ssh 问题?其次,如果是的话,有谁知道如何让密钥匹配,以便詹金斯可以进行拉动和构建?

编辑:我认为这是一个 ssh 问题,因为Jenkins Build Using Git with Deploy Key是相关的,但我使用的是 bitbucket 而不是 github。

4

2 回答 2

6

您需要生成密钥文件以上传到您的 BitBucket 帐户。从运行 Jenkins 的用户中,执行以下操作:

ssh-keygen -t rsa

采用默认密钥文件位置并将密码留空。然后,您将拥有要上传到 BitBucket 的 ~/.ssh/id_rsa.pub 文件。

于 2012-08-23T17:27:53.523 回答
1

我正在阅读这篇文章,因为我遇到了同样的问题,并且我现在发现了一些有用的东西。

我的配置我有一个从属构建服务器(Win7-64 机器),我在其中安装了标准 Git(在安装过程中,我选择了第三个选项:“从 Window 命令提示符运行 Git 并包含 Unix 工具”。)Jenkins 配置了 Java网络开始。

我注意到如果我从 Git shell 执行命令

ssh -vT git@bitbucket.org

我可以向接收消息的服务器进行身份验证

您可以使用 git 或 hg 连接到 Bitbucket。外壳访问被禁用。

但是如果我从 cmd 执行相同的命令,我会得到

权限被拒绝(公钥)

我不确定,但我认为 Git 插件从窗口 shell 执行命令,而不是使用 git shell(如我所料),所以这可以确定构建中的身份验证问题。

Git Plugin 文档中有一个名为“Some windows fun”的小部分,建议将 .ssh 用户的文件夹复制到 Git 文件夹下(在我的情况下为 C:\Program Files (x86)\Git)。

这样做之后,我从 windows shell 运行 ssh -vT git@bitbucket.org 并且它工作(如果它不工作,尝试重新启动 shell 或整个机器)。然后我从 Jenkins 运行构建,终于成功了。

我希望这会有所帮助。

祝你好运。

于 2015-02-06T22:44:58.930 回答