事前准备
在 runner 所在的服务器上生成 ssh
ssh-keygen -t rsa -b 2048 -C "<comment>"
在 gitlab repo 的 seetings -> CI/CD -> variables 下新建变量
SSH_PRIVATE_KEY,value 填写~/.ssh/id_xxx.pub的内容

- 关键步骤 将本地的私钥通过
ssh-copy-id命令注册到要部署的服务器上ssh-copy-id -i ~/.ssh/id_rsa.pub root@149.129.57.229
yml 配置
workflow:rules:- if: '$CI_COMMIT_REF_NAME == "master"'stages:- build- deploybuild_prod:stage: buildcache:key: build_prodpaths:- node_modules/script:- yarn install --registry=http://registry.npm.taobao.org/- yarn build- lsartifacts:expire_in: 60 minspaths:- distdeploy_prod:stage: deploydependencies:- build_prodbefore_script:- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'- eval $(ssh-agent -s)- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -- mkdir -p ~/.ssh- chmod 700 ~/.ssh- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'script:- ssh -t root@149.129.57.229 "cd /home/nginx-server/1995 && rm -rf *"- scp -r dist/* root@149.129.57.229:/home/nginx-server/1995/
