Git-Klon mit SSH im Docker-Image-Build

Git-Klon mit SSH im Docker-Image-Build

Ich erstelle ein Docker-Image und möchte ein Repository von Bitbucket klonen.

Wenn ich einen „Debian“-Container erstelle und ihn Schritt für Schritt ausführe, funktioniert alles einwandfrei. Aber wenn ich versuche, das Image zu erstellen, funktioniert es nicht.

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

Hier ist meinDockerfile

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

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 so erstellen, dass es ordnungsgemäß funktioniert?

Antwort1

Wenn Sie sicher sind, dass sich der richtige öffentliche Schlüssel in Bitbucket befindet, besteht die Antwort (meiner Erfahrung nach) fast immer in den Berechtigungen für den .ssh-Ordner und die darin enthaltenen Dateien. Ich sehe oben, dass Sie nur diesen Ordner und den darin enthaltenen privaten Schlüssel erstellen, aber die Berechtigungen nicht 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 Home-Verzeichnis zumindest nicht von der Gruppe oder anderen beschreibbar sein. Im Allgemeinen möchten Sie:

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

Alles zusammen:

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

verwandte Informationen