环境:
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