У меня проблемы с настройкой CI / CD с помощью ssh Gitlab
image: trion/ng-cli-karma
cache:
paths:
- node_modules/
deploy_production:
stage: deploy
environment: Production
only:
- master
script:
- rm ./package-lock.json
- npm install
- cd dist/
- ls
- apt-get update -qq && apt-get install -y -qq sshpass
- sshpass -V
- export SSHPASS=XXXX
- sshpass -e scp -o stricthostkeychecking=no -r . root@IP_SERVER:/DIR:PATHНа git push ...
Warning: Permanently added 'IP_SERVER' (ECDSA) to the list of known hosts.
Permission denied (publickey).
lost connection
ERROR: Job failed: exit code 1
Я читал, что ssh CI / CD с gitlab еще не поддерживается? есть ли у кого-нибудь предложение или пример.





Похоже, GitLab позволяет использовать ключи SSH с GitLab и CI / CD. Вы можете найти эту информацию здесь:
Там вы увидите, что они используют информацию SSH под ключевым словом 'before-script', но я уверен, что такие вещи довольно податливы!
Похоже, вы не передали свой закрытый ключ или не добавили ключ gitlab ssh в список известных хостов на вашем сервере.
Попробуйте добавить сценарий до, как показано ниже, и проверьте его. (Измените команды yum на apt-get соответственно)
before_script:
- yum --enablerepo=epel -y install sshpass
- yum install -y openssh openssh-client
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
script:
- export SSHPASS= XXXX
- sshpass -e scp -o stricthostkeychecking=no -r . $USER@$HOST:$PATH