最近在搭建jenkins和gerrit相关的连通问题,对jenkins用ssh key问题
遇到的问题总结一下:
我们通过stora-jenkins这个账号访问gerrit,虽然都是同一个账号去访问,但是不同的操作位置,交互pub key的位置不一样
- jenkins配置gerrit的时候,ssh key永远不被发现的问题:
最后发现不管怎么设置.ssh文件的权限,在Jenkins server上这里都找不到文件。解决方法如下:
Jenkins Gerrit Trigger - "/var/lib/jenkins/.ssh/id_rsa" is not a valid key file - Stack Overflow
通过上述命令生成秘钥以后默认在.ssh目录下,要文件权限为
chmod 700 .ssh
chmod 600 .ssh/config
当我们登录到jenkins服务器上用stora-jenkins手动下载代码的时候,默认查找的位置是当前主目录下的.ssh 目录下的key信息,而且这里的权限必须设置正确
复制id_rsa.pub 中key的信息到gerrit
用stora-jenkins这个账号登录gerrit,并且把pub key信息添加到gerrit。
- jenkins配置gerrit的触发功能
刚刚在上面我们创建了key,但是还是出错
原因可能是权限不够
我们新建一个目录,把刚才生成的key所有文件复制一份到这个目录下,然后给他777的权限,
这时候可以被正常发现,并且连接ok
- 在jenkins执行shell命令操作gerrit
可以看到jenkin在操作ssh的时候默认用的是/var/lib/jenkins/.ssh/目录下的秘钥,如果秘钥不多,那还是无法操作,所以我们再把/root/.ssh/目录下的东西复制一份到/var/lib/jenkins/.ssh目录下,而且这个目录下对文件的权限也有要求,权限不对,也无法访问
再次操作 就成功了