使用场景
Jenkins自动化构建
- Jenkins根据配置获取GIT分支代码,并拉取
- Maven将拉取代码打包
- Scp传输打包后的文件至部署的服务器
- 服务器执行部署脚本(杀死原服务进程)
scp 实现无密文件传输
构建过程第三步时需要将jar包跨服务器传输,此时用到了Scp。
比如将本服务器文件传输至B服务器/usr/local/目录下
scp docker-compose.yml root@B服务器地址:/usr/local/docker-compose.ym
这样传输每次操作都是需要密码的,非常繁琐。
解决方式
将两台服务器建立信任关系。
比如A、B两台服务器,A需要将文件发送至B服务器,且不需要密码,可以这样做
- 将A服务器ssh公钥赋值给B服务器的./ssh/authorized_keys
scp id_rsa.pub root@(B服务器地址):/root/.ssh/authorized_keys
- 只需要再输入一次密码,之后的操作可实现无密传输