Jenkins中提示Host key verification failed解决办法
Started by user 123Running as SYSTEM[EnvInject] - Loading node environment variables.Building in workspace /var/lib/jenkins/workspace/test-a[test-a] $ /bin/sh -xe /tmp/jenkins2994750458785375652.sh+ I
Started by user 123 Running as SYSTEM [EnvInject] - Loading node environment variables. Building in workspace /var/lib/jenkins/workspace/test-a [test-a] $ /bin/sh -xe /tmp/jenkins2994750458785375652.sh + IP=10.0.0.52 + scp /data/a.sh root@10.0.0.52:/data/ Host key verification failed. lost connection Build step 'Execute shell' marked build as failure Finished: FAILURE
报错原因
a.jenkins普通用户无法执行某些系统命令;
b.我们并没有为jenkins生成过密钥对,也没有将他的公钥拷到目标服务器上.
在安装jenkins后,系统生成了jenkins这个普通用户,但是在/etc/passwd中,他的shell是/bin/false,所以他不能登录系统,也没有家目录;
首先我们修改他的登录权限,将/bin/false改为/bin/bash,切换到jenkins用户,su - jenkins,他的终端显示为-bash-4.2$,修改终端显示.
终端修改完之后长这个样子
生成密钥对
具体步骤
1 2 3 4 5 6 7 8 |
|
3.使用sudo提升普通用户权限
此时是完成了第二步,但还没有操作第一步,在文件末尾添加一行,就这么一行就有很多要注意的地方,首先修改文件权限为600,然后用viduso去修改文件,中间的空隙不是空格,而是tab,命令和命令之间要用逗号,保存退出后,将权限改为440,而不是400,最后用visudo -c检查语法是否出错.
jenkins ALL=(ALL) NOPASSWD: /usr/bin/ssh, /usr/bin/rsync
jenkins ALL=(ALL) NOPASSWD: ALL
这两行内容任意选一个都行.
重启服务,构建任务
一直有人提问说总是不成功,这里再补充一点,在jenkins里面-系统设置-系统信息里面有个user.name可以看下当前jenkins使用的用户是什么,很多朋友以为默认就是jenkins用户,其实使用的root用户所以ssh
-copy-
id
总是不成功。这里一定要确定好jenkins使用的用户是什么!!!
配置好别忘了先用之前配置的命令登录一下,否则也是一样提示,如下图:
输入yes后确定命令行是可以登录的,再试jenkins里面各类脚本就可以通过了。
更多推荐
所有评论(0)