Gitlab Pipelines Отказано в разрешении (PublicKey) - PullRequest
0 голосов
/ 10 ноября 2019

Мое задание по конвейеру gitlab не работает по SSH с производственным сервером в цифровом океане. Насколько я могу судить, я все сделал правильно:

  1. Скопировал открытый ключ в ~/.ssh/authorized_keys
  2. рабочего сервера chmod -R go= ~/.ssh и chown -R $USER:$USER ~/.ssh, чтобы убедиться, чторазрешения установлены правильно
  3. Скопированный закрытый ключ в переменную PRODUCTION_PRIVATE_KEY в настройках CI / CD.

после запуска задания он по-прежнему завершается ошибкой при подключении к серверу скод ошибки:

root@123.456.789.10: Permission denied (publickey).
ERROR: Job failed: exit code 1

Вот мой .gitlab-ci.yml:

before_script:
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - 'apt-get update -y && apt-get -y install rsync'
  - mkdir -p ~/.ssh
  - eval $(ssh-agent -s)
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'

stage_deploy:
  artifacts:
    paths:
      - /
  #only run script when pushed to master branch 
  only:
    - master
  script:
    #get private key
    - ssh-add <(echo "$PRODUCTION_PRIVATE_KEY") 
    #make a _tmp directory on server **THIS IS WHERE IT FAILS**
    - ssh -p22 root@123.456.789.10 "mkdir /var/www/html/example.com_tmp"
    #copy all repo files to _tmp
    - rsync -avz --exclude=.git --exclude=src -r /builds/geochanto/example-wp/ george@123.456.789.10:/var/www/html/example.com_tmp
    #move site folder to _old, move _tmp to site
    - ssh -p22 j8rqv2sd9lt6@107.180.54.236 "mv /var/www/html/example.com/ /var/www/html/example.com_old && mv /var/www/html/example.com_tmp /var/www/html/example.com"
    #remove _old folder
    - ssh -p22 j8rqv2sd9lt6@107.180.54.236 "rm /var/www/html/example.com_old"```

...