用root用戶登陸slave節點,首先建立jenkins用戶,並指定主目錄java
$ useradd -m jenkins -d /home/jenkins
查看jenkins用戶及組的信息安全
$ id jenkins uid=500(jenkins) gid=500(jenkins) 組=500(jenkins)
再修改jenkins密碼,若不修改是未知的bash
$ passwd jenkins
再切換到jenkins用戶,確保jdk已安裝ssh
$ su - jenkins
同時確保slave已安裝jdkui
$ java -version
且sshd正確運行spa
$ service --status-all | grep ssh
使用jenkins用戶登陸到jenkins master機器3d
使用jenkins用戶登陸時若發現鏈接失敗(lost connection),能夠先用root用戶登陸,打開/etc/passwd,找到code
jenkins:x:498:499:Jenkins Continuous Integration Server:/var/lib/jenkins:/bin/false
將最後的/bin/false改成/bin/bash,即可以登陸。記得使用完改回去,猜想是安全限制。blog
jenkins用戶登陸後執行如下命令,生成公私鑰圖片
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): /var/lib/jenkins/.ssh/id_rsa
將公鑰和私鑰保存到jenkins主目錄下,注意確保.ssh目錄和id_rsa都是jenkins用戶所擁有或者有可讀寫權限
而後會要求輸入passphrase(密碼),這裏仍是不設置,直接兩次enter
進入/var/lib/jenkins/.ssh,使用scp命令將生成的公鑰id_rsa.pub拷貝到各個slave節點,並命名爲authorized_keys
$ scp id_rsa jenkins@xxx.xxx.xxx.xxx:~/.ssh/authorized_keys
同時要修改authorized_keys的權限,
$ chmod 700 authorized_keys
回到jenkins控制檯,打開如下頁面,添加credentials,如下配置頁面是添加slave的jenkins用戶密碼
另外一種ssh免密碼登陸配置(基於公開密鑰的認證),可指定jenkins master私鑰的路徑或者選擇第三個From the Jenkins master ~./ssh,咱們選擇/var/lib/jenkins/.ssh/id_rsa,這是在上一節建立的私鑰
建立slave
進入「系統管理>管理節點>新建節點」,輸入節點名稱,我已經建了一個節點,因此能夠選擇複製
進入配置頁面,按要求填寫,credentials這裏選擇用戶密碼登陸,免密碼登陸須要指定一個屬於它的id_rsa。
保存以後,點擊Relaunch agent,啓動節點