
GitLab Pipeline - Acessar uma máquina remota com chave SSH
Contents
Passos para dentro de um job do pipeline do GitLab, acessar uma máquina remota via ssh.
Premissas
- O job roda em um executor do tipo docker
- A imagem de container do job tem disponível o comando
ssh-agent - A máquina remota tem um usuário que permite login via ssh, vamos supor que o usuário se chama
sonic - Um par de chave pública-privada foi criado para o usuário
sonic, algo como:ssh-keygen -t rsa -f /tmp/sonic/sonic_key -C 'gitlab-access-user-sonic' - A chave pública do usuário
sonicfoi adicionada a/home/sonic/.ssh/authorized_keysna máquina remota - A chave privada será usada na configuração no GitLab
GitLab
Nas configurações de CI/CD do projeto ou do grupo, adicione uma variável chamada SSH_PRIVATE_KEY do tipo File com o conteúdo da chave privada gerada para o usuário sonic.
No job, a env SSH_PRIVATE_KEY vai conter o path para um arquivo que vai ter o conteúdo da chave privada.
Na tag script do job, basta isso para acessar a máquina remota:
Se tiver problema de validação da chave do host, revise o comando ssh-keyscan. Um workaround nessa segurança é adicionar -o StrictHostKeyChecking=no ao comando ssh.
MhagnumDw



