Skip to content

25、SSH远程部署到另一台机器

因为不是每一台服务器都有jenkins的,一般都是一台jenkins,部署很多机器

1、安装插件

Publish Over SSH

image-20250730132452348

2、配置另一台机器

sh
# 生成秘钥
ssh-keygen -t dsa

# 把公钥复制到要访问的机器
ssh-copy-id root@目标机器的ip

# 第一次要输入目标机器的密码

3、操作另一台机器

新建任务xx-springboot-ssh

image-20250730133442376

4、远程连接

sh
# 省略一些制作镜像的步骤 直接拉取镜像

# 远程服务器地址
REMOTE_SERVER=root@xx.xx.163

ssh $REMOTE_SERVER "ls"
image-20250730134639485

5、远程连接失败的坑

由于Jenkins安装会自动创建一个jenkins用户,但是这个jenkins用户中还没有秘钥,所以我们要切换成jenkins用户生成一下

我们使用 su切换用户

sh
su jenkins
image-20250730134816351

发现切不了(又来一坑

我们先查看 /etc/passwd文件

sh
more /etc/passwd | grep jenkins

image-20250730134900202

sh
# /bin/false  说明是不能登录的

可以使用su -s /bin/bash - jenkins

sh
su -s /bin/bash - jenkins
sh
ssh-keygen -t dsa
ssh-copy-id root@目标机器ip

6、再构建一次

image-20250730140357475

已经能看到目标机器的文件

7、目标机器拉取镜像部署

sh
# 省略一些制作镜像的步骤 直接拉取镜像

# 远程服务器地址
REMOTE_SERVER=root@xx.xx.163

ssh $REMOTE_SERVER <<EOF
echo "当前目录:"
pwd

echo "拉取镜像:"
docker pull registry.cn-hangzhou.aliyuncs.com/xx_blog/maven:3-alpine

EOF

# 后面正常写启动容器的命令即可

image-20250730140910396

image-20250730141344472