У меня есть следующие .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 user_name@xxx.xx.xxx.xxx "cd test && git clone git@gitlab-myweb.com:repo_group/repo.git"
only:
- master
В $SSH_PRIVATE_KEY
закрытый ключ, сгенерированный при входе в систему как user_name
в xxx.xx.xxx.xxx
, где я пытаюсь клонировать свое репо.
После запуска ci
, Я получаю эту ошибку:
user_name@xxx.xx.xxx.xxx: Permission denied (publickey).
ERROR: Job failed: exit code 1
Я явно испортил ssh
, но я очень не понимаю, в чем именно заключается моя проблема. Я слабо следил этот руководство.
Можете ли вы помочь мне найти мою ошибку?
Причина в том, что я не сделал двух вещей:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
GitLab
открытые ключи профиля. Это делается путем копирования содержимого cat ~/.ssh/id_rsa.pub
и вставив их в https://yourgitlabwebsite.com/profile/keys