Chris Mccabe
Chris Mccabe

Reputation: 1951

jenkins/hudson can't connect to github repo

I am on Ec2 with the base amazon ami linux- I have installed jenkins but when I go to pull the repo from github I am given the following error:

Building in workspace /var/lib/jenkins/workspace/build social
Checkout:build social / /var/lib/jenkins/workspace/build social - hudson.remoting.LocalChannel@5c7b21b
Using strategy: Default
Cloning the remote Git repository
Cloning repository origin
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:adulion/.git
hudson.plugins.git.GitException: Could not clone [email protected]:adulion/.git
    at hudson.plugins.git.GitAPI.clone(GitAPI.java:245)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1117)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1059)
    at hudson.FilePath.act(FilePath.java:832)
    at hudson.FilePath.act(FilePath.java:814)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1059)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1218)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:581)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:470)
    at hudson.model.Run.run(Run.java:1421)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:238)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin [email protected]:adulion/.git /var/lib/jenkins/workspace/build social" returned status code 128:
stdout: Cloning into /var/lib/jenkins/workspace/build social...

stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly

I have generated a key for the current user who installed jenkins and have managed to clone the repo using the git command line but jenkins can not.

I have copied the ~/.ssh files into /var/lib/jenkins/.ssh

I have added github to the known hosts and I have run out of solutions to try. Anyone know where I am going wrong? Is there a way to get jenkins to show the public key it's using and I can debug if it's using the correct one?

I removed the name of the repo because its a private repo

Upvotes: 21

Views: 33768

Answers (6)

tread
tread

Reputation: 11108

You need to add the ssh key of jenkins to you github user.

Generate ssh key

Go to:

Github->Settings(Top right)->SSH Keys(Left Pane)->Add SSH Key

Upvotes: -1

user1786927
user1786927

Reputation: 21

If you log in as jenkins you can do

ssh -i ~/.ssh/id_rsa [email protected]

where ~/.ssh/id_rsa is the path/to/your/ssh/key and it will prompt for the password and add to the known_hosts file

Upvotes: 2

greg
greg

Reputation: 6913

1) Switch User into your jenkins account

su jenkins

2) Create the key without a passphrase

3) ssh [email protected]

That worked perfectly for me.

You may need to create a password for the jenkins account, if so use sudo passwd jenkins

Upvotes: 6

Max
Max

Reputation: 2230

He following helped me:

Login under Jenkins

sudo su jenkins

Copy your github key to Jenkins .ssh folder

cp ~/.ssh/id_rsa_github* /var/lib/jenkins/.ssh/

Raname the keys

mv id_rsa_github id_rsa
mv id_rsa_github.pub id_rsa.pub

Upvotes: 5

sti
sti

Reputation: 11075

The error seems to be: host key verification failed.

You should log into your Jenkins host as the Jenkins user and run:

ssh [email protected]

Then answer yes to the prompt about the host key. This only needs to be done once.

Alternatively you could add "StrictHostKeyChecking no" to ~jenkins/.ssh/config.

Upvotes: 30

mpdaugherty
mpdaugherty

Reputation: 1170

I'm using a single jenkins machine to check out multiple github repositories and had similar problems when setting it up. What I ended up doing was configuring an SSH config file for jenkins so that SSH would automatically know which id file to associate with each repository.

/var/lib/jenkins/.ssh/config:

Host github-ABC
  HostName github.com
  User git
  IdentityFile /var/lib/jenkins/.ssh/id_rsa_ABC

In the Jenkins project config under source code management, I used this as the repository name:

git@github-ABC:user/repo.git

Finally, I use the SSH public key as a deploy key in the github repository.

Upvotes: 5

Related Questions