使用Bitbucket配置Jenkins

时间:2012-08-23 17:19:30

标签: java git jenkins bitbucket

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

每当我尝试构建我的项目时(我已经在Jenkins上安装了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问题?其次,如果是的话,是否有人知道如何让钥匙匹配,以便Jenkins可以进行拉动和构建?

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

2 个答案:

答案 0 :(得分:6)

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

ssh-keygen -t rsa

获取密钥文件位置的默认值,并将密码保留为空白。然后,您将〜/ .ssh / id_rsa.pub文件上传到BitBucket。

答案 1 :(得分:1)

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

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

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

ssh -vT git@bitbucket.org

我可以通过服务器获取消息进行身份验证

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

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

许可被拒绝(公钥)

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

Git Plugin docs中有一个名为&#34的小部分;有些窗口很有趣"建议复制.ssh用户在Git文件夹下的文件夹(在我的情况下为C:\ Program Files(x86)\ Git)。

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

我希望这可以提供帮助。

祝你好运。

相关问题