我似乎一直试图将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_keys
和known_hosts
,但根据此处的文档......
我应该在〜/ .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。
答案 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运行构建,最后它工作了。
我希望这可以提供帮助。
祝你好运。