GitLab CI 无法连接到远程服务器

GitLab CI 无法连接到远程服务器

我有以下.gitlab-ci.yml文件,旨在通过将我的主 GitLab 存储库克隆到test特定服务器上的目录来部署它。

image: ubuntu:latest
before_script:
  - apt-get install -y
  - apt-get update -y
  - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y && apt-get install git -y )'
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null ## /dev/null = trou noir
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh
  - ssh-keyscan charrier.alwaysdata.net >> ~/.ssh/known_hosts
  - chmod 644 ~/.ssh/known_hosts
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'

deploy:
  script:
    - ssh -o StrictHostKeyChecking=no -vT [email protected] "cd test && git clone [email protected]:repo_group/repo.git"
  only:
    - master

$SSH_PRIVATE_KEY是登录时生成的私钥,如user_name在中xxx.xx.xxx.xxx,我正尝试克隆我的 repo。

运行时ci,出现此错误:

[email protected]: Permission denied (publickey).
ERROR: Job failed: exit code 1

我显然搞砸了ssh,但我很困惑我的问题到底是什么。我松散地遵循指导。

你能帮我找出我的错误吗?

答案1

原因是我没有做两件事:

  1. 将服务器的公钥添加到服务器的授权密钥中。在服务器内部,只需运行此行即可完成此操作:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  2. 我没有将服务器的公钥添加到GitLab配置文件的公钥中。这是通过复制内容cat ~/.ssh/id_rsa.pub并粘贴到https://yourgitlabwebsite.com/profile/keys

相关内容