Onde está ~/.ssh/config
? As compilações do Docker são feitas como raiz, para que a configuração precise estar em /root/.ssh/config
(EDIT) Este problema estava acontecendo também do meu laptop usando root e meu usuário, que poderia receber a saudação ao tentar usar o ssh com o usuário git. Então tentei o ansible playbook e levantou erros para o repo também. Tentei outro e que clones impecável. O problema, então, não parece ser com git, docker ou ssh, mas com a configuração do gitlab.
Em um Dockerfile, estou tentando c repositórios privados hospedados em um servidor da empresa executando o gitlab e configurado com uma porta ssh não padrão .
Isto é o que eu esperava rodar (junto com alguns parâmetros no arquivo de configuração ssh)
RUN git clone [email protected]:GroupName/repo_name.git
Coisas que eu já verifiquei:
Tentei com o ssh-agent e parece ok (embora eu especifique o arquivo na configuração e não precise dele)
Identity added: /opt/.ssh/id_rsa (/opt/.ssh/id_rsa)
O ~ / .ssh / config tem o seguinte:
Host *
StrictHostKeyChecking no
PubkeyAcceptedKeyTypes +ssh-rsa
PasswordAuthentication no
User git
ForwardAgent yes
Identityfile /opt/.ssh/id_rsa # /opt is the home of the user RUNning the command in docker
port 22022
EXECUTANDO isso no contêiner:
ssh -vT -i /opt/.ssh/id_rsa [email protected]:GroupName/repo_name.git
Obtém o resultado
Welcome to GitLab, Anonymous!
Mas o comando git clone fica:
Cloning into 'repo_name'...
GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
The command '/bin/sh -c git clone [email protected]:GroupName/repo_name.git;' returned a non-zero code: 128
Onde está ~/.ssh/config
? As compilações do Docker são feitas como raiz, para que a configuração precise estar em /root/.ssh/config