I want to set up a Linux node as a slave to the 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 user’s home directory are we talking about?
Advertisement
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
).