Gitlab - 无法为CI和CD版本验证远程服务器

时间:2018-01-25 02:42:55

标签: gitlab gitlab-ci gitlab-ci-runner

当我的“ .gitlab-ci.yml ”尝试远程访问我的Ubuntu服务器时,我收到“输入密码/ / dev / fd / 63 ”错误执行SSH命令。<​​/ p>

我创建了一个名为“ STAGING_PRIVATE_KEY ”的新变量,该值是我个人用来SSH到服务器的私钥,但为“提供了相同的密钥。”gitlab- ci.yml“无法进行身份验证。

以下是我的 yml 文件:

deploy_staging:
  stage: deploy
  before_script:
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
  - mkdir -p ~/.ssh
  - eval $(ssh-agent -s)
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
  script:
    - ssh-add <(echo "$STAGING_PRIVATE_KEY" | base64 --decode)
    - cd test
    - git pull
    - echo "deployed to staging server"
  environment:
    name: staging
    url: MY SERVER

2 个答案:

答案 0 :(得分:2)

我使用以下代码段通过create_login_profile作业ssh,STAGING_SSH_KEY作为变量存储在Settings-> CI / CD-> Variables

.gitlab-ci.yml

答案 1 :(得分:0)

由于openssh是使用Git for Windows的软件包,请尝试使用opeenssh密钥(使用ssh-keygen生成),不使用(现在)使用密码(以避免需要ssh-agent)< / p>

在AWS端注册您的openssh公钥(默认id_rsa.pub) 例如,&#34; Importing Your Own Public Key to Amazon EC2&#34;。