Jenkins链接私有仓库Failed to connect to repository,stderr: No ECDSA...的问题
Jenkins版本
2.492.2
git版本
git version 2.43.5
如图,我配置好了公钥在gitee,私钥填在credential里面,但是还是会发生这种报错链接不上的情况
我采取了如下尝试:
[root@jenkins1 ~]# git ls-remote -h -- git@gitee.com:ashmcarker/ashmcracker.git HEAD
The authenticity of host 'gitee.com (182.255.33.134)' can't be established.
ECDSA key fingerprint is xxxxxxxx
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'gitee.com,182.255.33.134' (ECDSA) to the list of known hosts.
[root@jenkins1 ~]# ls /root/.ssh/
authorized_keys id_rsa id_rsa.pub known_hosts
可以看到这里已经生成了known_hosts
文件在root家目录的.ssh下,但是还是不行,
Jenkins默认以jenkins用户运行,而该用户未信任gitee.com的ECDSA主机指纹,导致Host key verification failed报错。
root用户执行的git ls-remote -h操作只对root用户的known_hosts有效,而Jenkins仍未受益。
因为安装的Jenkins应用,默认是以一个叫Jenkins的用户在运行的,他解析不到gitee.com
这个ECDSA主机,刚刚执行上面的命令以后root倒是可以了,但是Jenkins还是不行,所以会报错。
而Jenkins是一个false的用户,不能登录终端,所以要么改一下,给它登录权限,然后去git ls-remote -h
一下,让它生成一个known_hosts
要么你切换Jenkins的运行用户,我选择把它切换为root
方法参考我的另外一篇文章:
Jenkins 2.492.2修改运行用户为 root的方法