Went through a lot of questions, but nothing seems to be solving my issue. Or to be more precise I am not sure if I am doing the whole thing correctly. So here it is:
Have installed centos 6.3 OS. Then I followed the following guide to install jenkins:
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions
Jenkins works fine. Now I am trying to set up a simple build job, which requires to clone a git repository. (I've installed git plugin)
In repository URL i type the following: git@gitserver:myrepo.git Of course I get an error: stderr: Host key verification failed.
ok, I need to generate ssh keys and all will be good. So I do the following:
su - jenkins
but unfortunately it doesn't switch to jenkins user.
cat /etc/passwd
shows the following:
jenkins:x:496:492:Jenkins Continuous Build Server:/var/lib/jenkins:/bin/false
so seems that it doesn't have a usual home directory.
The question is how do I generate keys for jenkins or if the above steps where not the right way to do it, how do I fix it?
Thanks a lot!
Update: I generated keys (as a root user) and placed them in jenkins home and did exactly and copied public key to git server. Still didn't help.
When I look at the log of the build it says:
Started by user anonymous
Building in workspace /var/lib/jenkins/jobs/myrepo/workspace
this user anonymous is this another user created by jenkins, or is it still jenkins that runs the commands?
In order to login as "jenkins" user, maybe you could try this:
And try to invoke:
Hope it helps.
I'm assuming that you have root access if you were able to install the Jenkins RPM. Were you su-ing to the jenkins user while logged in as root ? If not, you should do so or use
if your logged in user has sudo access.
Then run
to generate an RSA keypair for the jenkins user, and you can upload the public key to your git server. The key will be generated as /var/lib/jenkins/.ssh.id_ra.pub if you take the defaults.
I was having problems changing to the jenkins user. I needed to actually create the user properly in the system so I could log in to it. I ran this command to help me create the jenkins user in the system:
1) First make jenkins as real user by editing /etc/passwd file Change
2) Login to jenkins user, Now Jenkins home directory will be /var/lib/jenkins
3)Generate ssh keys again ( keys will be created in /var/lib/jenkins/.ssh)
4) copy id_rsa.pub key and paste in your git's authorized_keys file
5) Still if it won't work, probably you have to check permissions of your .ssh directory and contents
jenkins is a service account, it doesn't have a shell by design. It is generally accepted that service accounts shouldn't be able to log in interactively.
I didn't answer this one initially as it's a duplicate of a question that has been moved to server fault. I should have answered rather than linked to the answer in a comment.
if for some reason you want to login as jenkins, you can do so with: sudo su -s /bin/bash jenkins
What I did: sudo -u jenkins ssh-keygen. It works so far