前提
1、Jenkins通过docker部署
2、已经将宿主机的ssh密钥添加到github
问题
在配置源码管理时,这里采用ssh地址时,死活会报错
问题原因
配置的密钥是宿主机的密钥,不是Jenkins容器或者说Jenkins账户的密钥
解决方案
在Jenkins容器内部生成密钥,进行配置
#1、先在宿主机执行jenkins配置页的命令
git ls-remote -h -- git@github.com:Charles-HBT/learn_python.git HEAD 无报错
#2、进入到Jenkins容器内部
docker exec -it my_jenkins sh
#3、到Jenkins容器内部检查一下,ssh-keygen -R 你要访问的IP地址
# ssh-keygen -R 10.2.4.174
Host 10.2.4.174 not found in /root/.ssh/known_hosts
#4、在容器内执行一下,Jenkins配置页的命令,提示权限不足:由此可见,Jenkins内部是没有ssh密钥的
git ls-remote -h -- git@github.com:Charles-HBT/learn_python.git HEAD
#5、进入到/var/jenkins_home/.ssh/目录,创建Jenkins容器密钥
ssh-keygen -t rsa -C "XXXXX@gmail.com
#6、查看公钥,将公钥配置到github密钥配置页
$ pwd
/var/jenkins_home/.ssh
$ ls
id_rsa id_rsa.pub known_hosts known_hosts.old
$ cat id_rsa.pub
#7、将私钥配置到Jenkins