环境:

git服务器是自建的,使用ssh协议获取源代码

jenkins使用docker镜像运行

 

原因:jenkins docker镜像启动时,一般会加-u root参数,以root用户启动,但主目录仍是/var/jenkins_home
解决:使用docker exec -it ea4a9e93ce1d bash进入容器,在jenkins容器中用root用户创建ssh密钥,然后拷贝到/var/jenkins_home目录;最后使用ssh-copy-id将key拷贝到远程部署主机
详细步骤:
在容器里:
root用户sshgen生成key
.ssh文件夹copy 到/var/jenkins_home
ssh user@host 登录远程主机,首次登录需要选择yes
key copy到部署宿主机目录

命令:docker exec -it ea4a9e93ce1d bash  进入容器

ssh-keygen -t rsa -b 4096 -C "jenkins_user@myPC"  生成密钥
cp -rf /root/.ssh /var/jenkins_home/
ssh -p  22 regit@IP_ADDR  IP_ADDR为git服务器地址
ssh-copy-id -p 22 git-user1@IP_ADDR
ssh -p 22 regit@P_ADDR