Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Authentication error configuring Jenkins to work with Git Bitbucket repo

I am trying to configure Jenkins in a Windows 7 environment to work with Git repository on Bitbucket, but when I try to do a build - I get the error below.

This is the Repository URL I am using:

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

Not sure if I need to generate keys for Jenkins-Bitbucket, if yes, can anyone please provide detailed instructions on how to do that for 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
like image 272
user1004462 Avatar asked Dec 17 '13 00:12

user1004462


1 Answers

OK, here is what worked for me, but first, my set-up was as follows:

  1. Windows 7
  2. Jenkins (with Git plugin)
  3. Git
  4. Account on Bitbucket

I started by following this tutorial. It works on Windows, all you have to do is double-click "Git Bash" in "C:\Program Files (x86)\Git" and follow the instruction to generate ssh keys. I only had to do Step 2 and Step 3.

NOTE: I generated keys without a passphrase! This was the only way I could get it to work...

Then, open the public key file "id_rsa.pub" that was generated in "C:\Users\YOUR_WINDOWS_USER_NAME\.ssh" with a text editor and copy the content. Once you have the public key, you need to register it with Bitbucket, go to "Manage Account" -> "SSH Keys" -> "Add Key". Paste your public key and save.

To test the keys, I ran this command:

$ ssh -T [email protected]
logged in as <USER_ID>.

You can use git or hg to connect to Bitbucket. Shell access is disabled.

Now you need to register your private key with Jenkins: go to "Credentials" -> "Global credentials" -> "Add Credentials", enter your User Name, Description (optional), select "From a file on Jenkins master" and enter C:\Users\YOUR_WINDOWS_USER_NAME\.ssh\id_rsa.

Last step is to configure Jenkins job. Under "Source Code Management", select "Git", under "Repository URL", enter:

[email protected]:<USER_ID>/<REPO_NAME>.git

Under "Credentials", select credential that you've just created.

NOTE: make sure that when you go to "Manage Jenkins" -> "Configure System" -> "Git", "Path to Git executable" is set to something like "C:\Program Files (x86)\Git\cmd\git.exe".

Following these steps I was able to pull down my code from the repository.

like image 140
user1004462 Avatar answered Sep 28 '22 08:09

user1004462