用于打通构建机和远程主机的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@ipjenkins:su jenkins && cd ~/.ssh/ && ls -assh-copy-id -i ~/.ssh/id_rsa.pub root@ip

篇幅有限,图文过多,更多点这里