docker部署jenkins,发布任务执行scp免密传输
# 因为jenkins的任务都是以jenkins用户执行,必须以jenkins用户进入容器生成公私钥
$ docker exec -it -u jenkins jenkins /bin/bash
# 容器中生成公私钥 直接三次回车不设置密码等信息
$ ssh-keygen -t rsa
# 容器中到用户主目录/.ssh目录下查看生成的公钥
$ cat ~/.ssh id_rsa.pub
# 将公钥的内容追加到需要免密访问的服务器的 用户目录/.ssh/authorized_keys文件中
# 可以把jenkins容器中生成的 id_rsa.pub 公钥拷贝到需要免密访问的服务器上 执行
$ cat ./id_rsa.pub >> ~/.ssh/authorized_keys #直接写入文件
# 或者自行vim添加也行
# 添加完后免密就玩设置好了
# 回到jenkins的容器内部,第一次需要先执行一下ssh连接 这样会生成know_host文件 否则scp会报 Host key verification failed.
#
$ ssh root@10.1.2.3
# 测试一下
$ scp ./s.txt root@110.1.2.3/temp/s.txt
# 成功
# 设置成功后就能在jenkins任务或者流水线中愉快的使用scp免密传输文件了