Aditya Aditya - 4 months ago 14
Linux Question

Jenkins slave set-up - Both Master and Slave Nodes are Linux machines

I want to set-up a Linux node as a slave to Jenkins Master. I was going through the tutorial on setting it up for a Linux machine.


Have master launch slave agent via ssh

Jenkins has a built-in SSH client implementation that it can use to
talk to remote sshd and start a slave agent. This is the most
convenient and preferred method for Unix slaves, which normally has
sshd out-of-the-box. Click Manage Jenkins, then Manage Nodes, then
click "New Node." In this set up, you'll supply the connection
information (the slave host name, user name, and ssh credential). Note
that the slave will need the master's public ssh key copied to
~/.ssh/authorized_keys.


When it says
~/.ssh/authorized_keys
does it mean that I need to have the public key in this location on the node when logged in as a
jenkins
user (which is the username that the Master uses to log into the slaves) ? What does
~
signify? Which users home directory are we talking about?

Answer

To be precise,

  • the public key to be copied is the public key of the user running the master
  • the destination is the .ssh/authorized_keys file of the user on the slave (ie, the user whose credentials you select for the ssh connection on the Jenkins node config page).

The ~ character is expanded by most shells to the current user's home directory (e.g., /home/userxyz).

Comments