配置Jenkins以使用Git Bitbucket repo的身份验证错误

时间:2013-12-17 00:47:50

标签: git jenkins bitbucket

我正在尝试在Windows 7环境中配置Jenkins以使用Bitbucket上的Git存储库,但是当我尝试进行构建时 - 我收到以下错误。

这是我正在使用的存储库网址:

https://<MY_ID>:<MY_PASSWORD>@bitbucket.org/<MY_ID>/<MY_REPO_NAME>.git

我不确定是否需要为Jenkins-Bitbucket生成密钥,如果有,是否有人可以提供有关如何为Windows执行此操作的详细说明?

Started by user anonymous
Building in workspace C:\Users\<MY_NAME>\.jenkins\workspace\<MY_PROJECT>
Fetching changes from the remote Git repository
Fetching upstream changes from https://<MY_ID>@bitbucket.org/<MY_ID>/<MY_REPO_NAME>.git
FATAL: Failed to fetch from https://<MY_ID>@bitbucket.org/<MY_ID>/<MY_REPO_NAME>.git
hudson.plugins.git.GitException: Failed to fetch from https://<MY_ID>@bitbucket.org/<MY_ID>/<MY_REPO_NAME>.git
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:612)
    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:836)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:861)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1414)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:652)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:561)
    at hudson.model.Run.execute(Run.java:1678)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:231)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress https://<MY_ID>@bitbucket.org/<MY_ID>/<MY_REPO_NAME>.git +refs/heads/*:refs/remotes/<MY_ID>/*" returned status code 128:
stdout: 
stderr: fatal: Authentication failed for 'https://<MY_ID>@bitbucket.org/<MY_ID>/<MY_REPO_NAME>.git/'

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1098)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:984)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$200(CliGitAPIImpl.java:68)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:217)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.fetch(CliGitAPIImpl.java:223)
    at hudson.plugins.git.GitAPI.fetch(GitAPI.java:229)
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:610)
    ... 10 more

2 个答案:

答案 0 :(得分:7)

好的,这对我有用,但首先,我的设置如下:

  1. Windows 7
  2. Jenkins(使用Git插件)
  3. GIT中
  4. Bitbucket帐户
  5. 我开始关注此tutorial。它适用于Windows,您只需双击“C:\ Program Files(x86)\ Git”中的“Git Bash”,然后按照说明生成ssh密钥。我只需要做第2步和第3步。

    注意:我生成的密钥没有密码!这是我能让它发挥作用的唯一方法......

    然后,使用文本编辑器打开在“C:\ Users \ YOUR_WINDOWS_USER_NAME \ .ssh”中生成的公钥文件“id_rsa.pub”并复制内容。获得公钥后,需要将其注册到Bitbucket,转到“管理帐户” - &gt; “SSH密钥” - &gt; “添加密钥”。粘贴您的公钥并保存。

    为了测试密钥,我运行了这个命令:

    $ ssh -T git@bitbucket.org
    logged in as <USER_ID>.
    
    You can use git or hg to connect to Bitbucket. Shell access is disabled.
    

    现在您需要向Jenkins注册您的私钥:转到“凭据” - &gt; “全球证书” - &gt; “添加凭据”,输入您的用户名,描述(可选),选择“从Jenkins master上的文件”,然后输入C:\ Users \ YOUR_WINDOWS_USER_NAME \ .ssh \ id_rsa。

    最后一步是配置Jenkins作业。在“源代码管理”下,选择“Git”,在“存储库URL”下输入:

    git@bitbucket.org:<USER_ID>/<REPO_NAME>.git
    

    在“凭据”下,选择您刚刚创建的凭据。

    注意:确保当您转到“管理Jenkins”时 - > “配置系统” - &gt; “Git”,“Git可执行文件的路径”设置为“C:\ Program Files(x86)\ Git \ cmd \ git.exe”。

    按照这些步骤,我可以从存储库中下载我的代码。

答案 1 :(得分:0)

  

不确定我是否需要为Jenkins-Bitbucket生成密钥

键?如在“ssh键”中?如果您使用的是https网址(如this question中所述),则当然不会。登录和密码应该足够了。

仔细检查您的登录名/密码和网址:它区分大小写。

确保您的密码没有任何特殊字符(您需要percent-encode,如this case)。


要使用ssh网址,您可以点击“Use the SSH protocol with Bitbucket”(setting up ssh之后)。
确保将Jenkins作业配置中git仓库的url修改为:

git@bitbucket.org:accountname/reponame.git
# or
ssh://git@bitbucket.org/accountname/reponame.git

但是,请确保Jenkins以存储ssh密钥的用户身份运行:请参阅“Jenkins finds cannot find ssh key”和此BitBucket thread。 (Check also your firewall