Tenho o seguinte .gitlab-ci.yml
arquivo, que visa implantar meu repositório mestre GitLab clonando-o para o test
diretório em um servidor específico.
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
A $SSH_PRIVATE_KEY
é a chave privada gerada quando logado como user_name
no xxx.xx.xxx.xxx
, onde estou tentando clonar meu repositório.
Ao executar o ci
, recebo este erro:
[email protected]: Permission denied (publickey).
ERROR: Job failed: exit code 1
Eu claramente estraguei o ssh
, mas estou muito confuso qual é exatamente o meu problema. Eu estava vagamente seguindo este guia.
Você pode me ajudar a encontrar meu erro?
A razão foi porque eu não tinha feito duas coisas:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
GitLab
perfil. Isso é feito copiando o conteúdocat ~/.ssh/id_rsa.pub
e colando-os nohttps://yourgitlabwebsite.com/profile/keys