[英]Gitlab ssh configuration for CI/CD
我在使用Gitlab的ssh配置CI / CD時遇到問題
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
我讀過不支持gitlab的ssh CI / CD嗎? 有沒有人提出建議或示例。
看起來GitLab確實允許在GitLab和CI / CD中使用SSH密鑰。 您可以在這里找到該信息:
在那里,您將看到他們在關鍵字“ before-script”下使用SSH信息,但是我敢肯定這種事情是可延展的!
看來您沒有傳遞私鑰或未將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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.