报错原因
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命令执行了