Estou construindo uma imagem docker e quero clonar um repositório do bitbucket.
Se eu criar um contêiner `debian' e executar passo a passo, tudo funcionará bem. Mas quando tento criar a imagem, não funciona.
Eu adicionei a chave às configurações do bitbucket.
Aqui está o meuDockerfile
FROM debian:stretch
RUN apt-get update && apt-get -y upgrade && apt-get -y install nginx curl software-properties-common gnupg git
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y nodejs
RUN mkdir /backend
RUN npm install pm2 ts-node -g
WORKDIR /backend
RUN mkdir /root/.ssh
RUN echo -e "-----BEGIN RSA PRIVATE KEY-----\n(...)-----END RSA PRIVATE KEY-----" >> /root/.ssh/id_rsa
RUN chmod 400 /root/.ssh/id_rsa
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts
RUN git clone [email protected]:xxx/xxx.git
Aqui está o erro:
Cloning into 'xxx'...
Warning: Permanently added the RSA host key for IP address '104.192.143.3' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Como posso criar esta imagem para funcionar corretamente?
Responder1
Se você tiver certeza de que a chave pública correta está no bitbucket, a resposta (na minha experiência) é quase sempre as permissões na pasta .ssh e nos arquivos contidos nela. Vejo acima que você acabou de criar essa pasta e a chave privada, mas não atualiza as permissões.
Permissões esperadas
.ssh deve ser:
drwx------ 2 user user 4096 Feb 6 11:18 .ssh
A chave privada:
-rw------- 1 user user 1675 Feb 6 11:18 id_rsa
Finalmente, seu diretório inicial não deve, no mínimo, ser gravável por grupo ou outro, geralmente você deseja:
drwx------ 84 user user 16384 Feb 16 18:23 user
Juntando tudo:
chmod go-w /root
chmod 700 /root/.ssh
chmod 600 /root/.ssh/id_rsa