Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Permission denied (public key) during fetch from GitHub with Jenkins user on Ubuntu

Here is my setup:

  1. Jenkins is running on my linux machine as 'jenkins' user.
  2. I have generated a ssh key-pair as described in Linux - Setup Git, for the 'jenkins' user.
  3. When I sudo su jenkins and try ssh -vT [email protected], I am always asked my passphrase, but I am always eventually authenicated. (the verbose option shows which key is used, among others).
  4. I could clone my repo from GitHub using jenkins:

Thusly:

jenkins@alpm:~/jobs/test git/workspace$ git pull  Enter passphrase for key '/var/lib/jenkins/.ssh/id*_rsa': Already up-to-date. 

Up to this point I have followed the instructions to the letter. The problem is that the Jenkins job fails with the following error:

status code 128: stdout:  stderr: Permission denied (publickey). fatal: The remote end hung up unexpectedly 

This is same error as I get when I typo the passphrase (but of course, Jenkins does not ask me for the passphrase). The following pages:

  • GitHub - SSH Issues
  • Using SSH Agent Forwarding

indicate to me that ssh-agent could help remember the passphrase, which it does when I am using my own user, but not the jenkins id. Note that while running as my normal user yields:

echo "$SSH_AUTH_SOCK" /tmp/keyring-nQlwf9/ssh 

While running the same command as my 'jenkins' yields nothing (not even permission denied)

My understanding of the problem is that the passphrase is not remembered. Do you have any idea? Shall I start a ssh-agent or key ring manager for the jenkins user? How? Or is ssh forwarding suitable when forwarding to the same machine? Any brighter idea?

ps: I never sudo gitted, I always used jenkins or my user account (as mentioned in this SO post - Ubuntu/GitHub SSH Key Issue)

like image 521
pimajor Avatar asked May 14 '12 19:05

pimajor


People also ask

How do I fix Permission denied in GitHub?

Always use the "git" user$ ssh -T [email protected] > Permission denied (publickey). If your connection failed and you're using a remote URL with your GitHub username, you can change the remote URL to use the "git" user. You should verify your connection by typing: $ ssh -T [email protected] > Hi username!

How do I resolve permission denied public key?

This error comes up when using a wrong private key or no key at all when trying to connect via SSH. To resolve the problem, you should generate a new key pair and connect using that new set of keys.


1 Answers

Since nobody wrote the answer from the comments for several months, I will quickly do so.

There are 2 possible problems/solutions:

  1. id_rsa created with wrong user

    Create id_rsa as the jenkins user (see hudson cannot fetch from git repository)

  2. Leave passphrase empty

like image 62
Patrick Boos Avatar answered Oct 14 '22 00:10

Patrick Boos