用于打通构建机和远程主机的ssh通路
前提说明:需要将构建机中,root账户和jenkins账户的公钥同步到远程主机的authorized_keys中(配置jenkins管理代码部署,配置root控制远程服务权限)
A - ECS:(测试或正式或其他业务),B - 构建机
核心思想:B只能控制ECS,给A公钥,反之,A不能控制构建机。
介绍下A控制B和B控制A的区别
(1)A控制B - 在 A 机器的 Git Bash 中执行下列命令,该命令将公钥拷贝到服务端 B 的 ~/.ssh/authorized_keys,并设置文件权限。(会直接写入到ECS的authorized_keys配置中)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip
具体的ECS中无公钥: ssh-keygen -t rsa
以上的情况:需要在A中能直接控制B,并且第一次需要B密码,显然我们B是唯一的不受其他服务控制,B是master管理端,这个方式不适合我们jenkins的SSH管理,我们要jenkins所在服务器管理其他服务器。
(2)B控制A - 还是要A存储B公钥,B可以无限访问A (我们这里采用)
这里:jenkins所在服务器可以管理其他服务器
root:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip
jenkins:
su jenkins && cd ~/.ssh/ && ls -a
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip