问题:stderr: Host key verification failed. fatal: The remote end hung up unexpectedly
原因:
没有将Jenkins用户的密钥下发到gitlab的web上,错以为Jenkins去进行构建时以root用户去执行,实际上是Jenkins用户,而下发密钥时,将root家目录下的ssh密钥下发到gitlab上了,所以报错
关键点
- 首先要知道jenkins去gitlab上克隆代码是以什么用户去执行的
- Jenkins这个用户的主目录(家目录)是什么
- Jenkins服务器的key有没有下发到gitlab的web上
- 去Jenkins服务器上手动执行clone命令是否可以
- git ls-remote -h git@192.168.223.129:web/jenkins.git HEAD 执行此命令是否可以
1、Jenkins去构建的时候是以jenkins用户去执行,所以要注意权限问题
2、需要弄清楚Jenkins的家目录是什么
因为我们在添加git项目地址的时候,需要去下发密钥
Jenkins的家目录查看方式
代码语言:javascript复制<code>cat /etc/passwd | grep jenkins</code>
这里我们是通过yum的方式下载,jenkins的家目录为:/var/lib/jenkins
我们下发到gitlab的web界面上的密钥是root用户身份的密钥,所以需要将此密钥拷贝过来
代码语言:javascript复制<code>cp /root/.ssh/* /var/lib/jenkins/.ssh</code>
根据报错提示,需要使用Jenkins用户访问gitlab的主机,并添加密钥
代码语言:javascript复制#切jenkins用户方法
<code>sudo su -s /bin/bash jenkins</code>
#下发密钥
<code>git ls-remote -h git@192.168.223.129:web/jenkins.git HEAD</code>
The authenticity of host ‘192.168.223.129 (192.168.223.129)’ can’t be established.
RSA key fingerprint is 3a:60:7c:f9:1c:34:3c:cb:58:b5:47:67:69:98:44:d0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.223.129’ (RSA) to the list of known hosts.
问题解决!