報錯原因
a.jenkins普通用戶無法執行某些系統命令;
b.沒有為jenkins用戶生成過密鑰對,也沒有將他的公鑰拷到目標服務器上.
解決辦法:
- 在安裝jenkins后,系統生成了jenkins這個普通用戶,但是在/etc/passwd中,他的shell是/bin/false,所以他不能登錄系統,也沒有家目錄;
首先我們修改他的登錄權限,將/bin/false改為/bin/bash,切換到jenkins用戶,su - jenkins,他的終端顯示為-bash-4.2$
jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/bash
- 生成jenkins用戶密鑰對
[root@bogon .ssh]# su - jenkins
-bash-4.2$ ssh-keygen -t rsa
回車
-bash-4.2$ ssh-copy-id -i /var/lib/jenkins/.ssh/id_rsa.pub root@192.168.75.12
- 使用sudo提升普通用戶權限
用viduso去修改文件,命令和命令之間要用逗號,最后用visudo -c檢查語法是否出錯.
visudo
root ALL=(ALL) ALL # 原有的
jenkins ALL=(ALL) NOPASSWD:/usr/bin/ssh,/usr/bin/rsync # 新增的
最后就能夠在jenkins中使用command命令執行了