Configuring Jenkins with Bitbucket
我似乎在尝试将 Jenkins(Ubuntu 的 EC2 AWS 实例)与 Bitbucket 链接时遇到了困难。
每当我尝试构建我的项目(我已经在 J??enkins 上安装了 git 插件)时,我都会得到...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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 [email protected]: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 但找不到密钥。所以我试图生成密钥,在
https://confluence.atlassian.com/display/BITBUCKET/如何在您的 bitbucket 帐户上安装公钥
我应该在 ~/.ssh 下有一个名为 id_rsa
的文件
我一直在关注文档...
https://confluence.atlassian.com/display/BITBUCKET/通过bitbucket使用SSH协议
但它看起来几乎完成了一半,或者我错过了将密钥放入正确文件的位置。
首先 - 我的假设是否正确,这是一个 ssh 问题?其次,如果是,有谁知道如何让密钥匹配,以便 Jenkins 可以进行拉取和构建?
编辑:我认为这是一个 ssh 问题,因为问题 Jenkins Build Using Git with Deploy Key 是相关的,但我使用的是 bitbucket 而不是 github。
您需要生成密钥文件以上传到您的 BitBucket 帐户。从运行 Jenkins 的用户执行以下操作:
1 | ssh-keygen -t rsa |
采用默认密钥文件位置并将密码留空。然后,您将拥有要上传到 BitBucket 的 ~/.ssh/id_rsa.pub 文件。
我正在阅读这篇文章,因为我遇到了同样的问题,我现在发现了一些有用的东西。
我的配置
我有一个从属构建服务器(Win7-64 机器),我在其中安装了标准 Git(在安装过程中,我选择了第三个选项:"运行 Git 并从 Window 命令提示符中包含 Unix 工具"。)
Jenkins 配置了 Java Web Start。
我注意到如果我从 Git shell 执行命令
ssh -vT [email protected]
我可以通过获取消息的服务器进行身份验证
您可以使用 git 或 hg 连接到 Bitbucket。shell访问被禁用。
但是如果我从 cmd 执行相同的命令,我会得到
权限被拒绝(公钥)
我不确定,但我认为 Git 插件从窗口 shell 执行命令,而不是使用 git shell(如我所料),所以这可以确定构建中的身份验证问题。
在 Git 插件文档中有一个名为"Some windows fun"的小部分,建议将 .ssh 用户的文件夹复制到 Git 文件夹下(在我的情况下为 C:\\\\\\\\Program Files (x86) \\\\\\\\Git).
这样做之后,我从 windows shell 运行 ssh -vT [email protected] 并且它工作(如果它不工作,尝试重新启动 shell 或整个机器)。
然后我从 Jenkins 运行构建,终于成功了。
我希望这会有所帮助。
祝你好运。