SSH credentials on build slave

93 views
Skip to first unread message

Alex Grönholm

unread,
May 18, 2013, 5:30:25 PM5/18/13
to jenkins...@googlegroups.com
I have a Jenkins installation on a Linux box and a Windows 7 build slave for building Windows-only projects. Trouble is, I can't get the slave to check out the source repository with Mercurial. It always hangs, possibly due to SSH waiting for password input even though it's running in a headless environment. I have the proper SSH key installed on the master, but I don't think the slave can utilize it. What would be the best approach to this problem?

Chanda Unmack

unread,
May 20, 2013, 12:03:14 PM5/20/13
to jenkins...@googlegroups.com
I had a similar situation with git - I found the best way to see what's going on is to set up a test job that does a ssh -vvv to the git server (Mercurial in your case) 
That showed me which keys it was using and whether or not it actually used the .ssh/config file 

hth
chanda


On Sat, May 18, 2013 at 2:30 PM, Alex Grönholm <alex.g...@nextday.fi> wrote:
I have a Jenkins installation on a Linux box and a Windows 7 build slave for building Windows-only projects. Trouble is, I can't get the slave to check out the source repository with Mercurial. It always hangs, possibly due to SSH waiting for password input even though it's running in a headless environment. I have the proper SSH key installed on the master, but I don't think the slave can utilize it. What would be the best approach to this problem?

--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 

Alex Grönholm

unread,
May 20, 2013, 2:51:28 PM5/20/13
to jenkins...@googlegroups.com
20.05.2013 19:03, Chanda Unmack kirjoitti:
I had a similar situation with git - I found the best way to see what's going on is to set up a test job that does a ssh -vvv to the git server (Mercurial in your case) 
That showed me which keys it was using and whether or not it actually used the .ssh/config file
Trouble is, I have not installed ssh, there is no "ssh" command on PATH, so I have no clue where mercurial gets its ssh from. Strangely, it still works if I enter the password when it asks for it!
 

hth
chanda


On Sat, May 18, 2013 at 2:30 PM, Alex Grönholm <alex.g...@nextday.fi> wrote:
I have a Jenkins installation on a Linux box and a Windows 7 build slave for building Windows-only projects. Trouble is, I can't get the slave to check out the source repository with Mercurial. It always hangs, possibly due to SSH waiting for password input even though it's running in a headless environment. I have the proper SSH key installed on the master, but I don't think the slave can utilize it. What would be the best approach to this problem?
--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
--
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-users/E-bTVhv3dvY/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to jenkinsci-use...@googlegroups.com.

Alex Grönholm

unread,
May 20, 2013, 3:38:25 PM5/20/13
to jenkins...@googlegroups.com
20.05.2013 19:03, Chanda Unmack kirjoitti:
I had a similar situation with git - I found the best way to see what's going on is to set up a test job that does a ssh -vvv to the git server (Mercurial in your case) 
That showed me which keys it was using and whether or not it actually used the .ssh/config file
Apparently Mercurial uses TortoisePlink.exe for SSH connections. I'm not quite sure where to put my mercurial.ini so it will be used for Jenkins activities (the build slave service is running as the "Local System account").

hth
chanda


On Sat, May 18, 2013 at 2:30 PM, Alex Grönholm <alex.g...@nextday.fi> wrote:
I have a Jenkins installation on a Linux box and a Windows 7 build slave for building Windows-only projects. Trouble is, I can't get the slave to check out the source repository with Mercurial. It always hangs, possibly due to SSH waiting for password input even though it's running in a headless environment. I have the proper SSH key installed on the master, but I don't think the slave can utilize it. What would be the best approach to this problem?
--
You received this message because you are subscribed to the Google Groups "Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-use...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
--
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-users/E-bTVhv3dvY/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to jenkinsci-use...@googlegroups.com.

Chanda Unmack

unread,
May 20, 2013, 5:09:25 PM5/20/13
to jenkins...@googlegroups.com
On Mon, May 20, 2013 at 12:38 PM, Alex Grönholm <alex.g...@nextday.fi> wrote:
20.05.2013 19:03, Chanda Unmack kirjoitti:
I had a similar situation with git - I found the best way to see what's going on is to set up a test job that does a ssh -vvv to the git server (Mercurial in your case) 
That showed me which keys it was using and whether or not it actually used the .ssh/config file
Apparently Mercurial uses TortoisePlink.exe for SSH connections. I'm not quite sure where to put my mercurial.ini so it will be used for Jenkins activities (the build slave service is running as the "Local System account")

In my searches I found an article that showed the "Local System account" home directory to be in C:\Windows\SysWOW64\config\systemprofile 
But, I also had set the Environment variables in the node definition to set the HOME variable to be c:\jenkins so that I could set the .ssh up there. Doing the ssh -vvv verified that it was using that directory and the key file within.
I did see pages on getting Plink ssh working, but didn't bookmark them as it didn't apply to me - I'm sure a quick search would turn those up

Alex Grönholm

unread,
May 20, 2013, 8:58:29 PM5/20/13
to jenkins...@googlegroups.com
21.05.2013 00:09, Chanda Unmack kirjoitti:



On Mon, May 20, 2013 at 12:38 PM, Alex Grönholm <alex.g...@nextday.fi> wrote:
20.05.2013 19:03, Chanda Unmack kirjoitti:
I had a similar situation with git - I found the best way to see what's going on is to set up a test job that does a ssh -vvv to the git server (Mercurial in your case) 
That showed me which keys it was using and whether or not it actually used the .ssh/config file
Apparently Mercurial uses TortoisePlink.exe for SSH connections. I'm not quite sure where to put my mercurial.ini so it will be used for Jenkins activities (the build slave service is running as the "Local System account")

In my searches I found an article that showed the "Local System account" home directory to be in C:\Windows\SysWOW64\config\systemprofile 
But, I also had set the Environment variables in the node definition to set the HOME variable to be c:\jenkins so that I could set the .ssh up there. Doing the ssh -vvv verified that it was using that directory and the key file within.
I did see pages on getting Plink ssh working, but didn't bookmark them as it didn't apply to me - I'm sure a quick search would turn those up

The problem seems to be that if anything goes wrong, tortoiseplink will try to display an error dialog, which in a headless environment causes it to silently hang.
Makes it really hard to diagnose. The furthest I got was running hg clone manually (using plink) but it just freezes completely after authenticating, no errors, nothing. I have no clue how to debug this now. Everything works smoothly when I do it manually from the command line, but not when done remotely by Jenkins. Adding -batch in the plink arguments didn't help either.
hth
chanda


On Sat, May 18, 2013 at 2:30 PM, Alex Grönholm <alex.g...@nextday.fi> wrote:
I have a Jenkins installation on a Linux box and a Windows 7 build slave for building Windows-only projects. Trouble is, I can't get the slave to check out the source repository with Mercurial. It always hangs, possibly due to SSH waiting for password input even though it's running in a headless environment. I have the proper SSH key installed on the master, but I don't think the slave can utilize it. What would be the best approach to this problem?
-- 
       
--
Reply all
Reply to author
Forward
0 new messages