容器内配置公私钥
先进入部署Jenkinns中的容器,在docker容器内生成公私钥
ssh-keygen -t rsa
jenkins 配置私钥信息
在Dashbord->凭据->系统->全局凭据中新增一个凭据
将公钥配置在gitlab
正常这么配制就可以了,但是在jenkins上发现使用ssh拉取代码还是报错:
登陆进docker容器内部直接使用gitlab clone xxx.git 发现也是拉取不了代码,依旧报没权限
配置了~/.ssh/config文件
依旧不行,最终发现是使用ssh拉取的时候,配置文件找不对,就去查看容器中ssh_config的配置文件,发现该配置文件全部是注释状态,也就导致了每次使用ssh拉取代码的时候找不到对应的配置文件
容器中的ssh_config的配置文件路径是 /etc/ssh/ssh_config
将其修改为
Host *
IdentityFile ~/.ssh/id_rsa # 写明 key 的位置
HostkeyAlgorithms +ssh-rsa # 使 openssh 支持 rsa 算法
PubkeyAcceptedAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
修改完成后测试一下再docker容器内部是否可以正常拉取代码:
再去jenkins 中新建一个任务看是否可以拉取代码
至此就可以在jenkins服务中使用ssh拉取代码了