Git-Klon mit ssh im Docker Image Build

1518
Victor

Ich baue ein Docker-Image und möchte ein Repository aus Bitbucket klonen.

Wenn ich einen Debian-Container erstelle und Schritt für Schritt ausführe, funktioniert alles gut. Wenn ich jedoch versuche, das Image zu erstellen, funktioniert es nicht.

Ich habe den Schlüssel zu den Bitbucket-Einstellungen hinzugefügt.

Hier ist mein Dockerfile

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 git@bitbucket.org:xxx/xxx.git 

Hier ist der Fehler:

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. 

Wie kann ich dieses Image erstellen, um ordnungsgemäß zu funktionieren?

0

1 Antwort auf die Frage

1
wayofthepie

Wenn Sie sicher sind, dass sich der richtige öffentliche Schlüssel in Bitbucket befindet, besteht die Antwort (meiner Erfahrung nach) fast immer auf den Berechtigungen für den .ssh-Ordner und die darin enthaltenen Dateien. Ich sehe oben, dass Sie nur diesen Ordner und den privaten Schlüssel darin erstellen, aber keine Berechtigungen aktualisieren.

Erwartete Berechtigungen

.ssh sollte sein:

drwx------ 2 user user 4096 Feb 6 11:18 .ssh 

Der private Schlüssel:

-rw------- 1 user user 1675 Feb 6 11:18 id_rsa 

Schließlich sollte Ihr Heimatverzeichnis zumindest nicht von einer Gruppe oder von anderen Personen beschreibbar sein. In der Regel möchten Sie:

drwx------ 84 user user 16384 Feb 16 18:23 user 

Alles zusammenstellen:

chmod go-w /root chmod 700 /root/.ssh chmod 600 /root/.ssh/id_rsa