[英]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.