Wie erhalte ich einen öffentlichen SSH-Schlüssel für ein Docker Jenkins-Image zur Git-Authentifizierung?

7

Ich verwende Docker und führe ein Jenkins-Image aus. Das Bild, das ich versuche: https://github.com/orchardup/docker-jenkins

Ich muss ein SSH-Schlüsselpaar generieren, damit ich mich bei Bitbucket authentifizieren kann. Dies ist so, dass Jenkins meinen Quellcode abrufen und erstellen kann. Normalerweise würde ich mich nur an den Jenkins-Benutzer wenden und ssh-keygen ausführen, um dies zu erreichen.

Ich habe die Ausführungsdatei bearbeitet:

su jenkins

Dies gibt mir Zugriff auf die Shell, in der ich ausgeführt werden kann ssh-keygen, um SSH-Schlüssel im jenkins-Benutzer-Home-Verzeichnis unter zu installieren ~/.ssh. Danach beende ich und das Dockerfile geht weiter. Dieses Home-Verzeichnis wird /var/lib/jenkinsauch als Volume auf dem Host-Server bereitgestellt.

Das Problem ist, dass die SSH-Schlüssel hier angezeigt werden, aber nicht funktionieren. Irgendwelche Ideen, wie dies besser erreicht werden kann?

Vielen Dank

Jason Prawn
quelle
Welches Plugin verwenden Sie für das SCM-Repository, ist es Git?
c4urself

Antworten:

1

Ich habe gerade festgestellt, dass Sie gitdie Frage verwenden, die ich übersehen hatte ...

Ab Version 2.0 des "Git Plugin" können die Anmeldeinformationen für bestimmte Repositorys im Abschnitt "Quellcodeverwaltung" des Tests selbst hinzugefügt werden. Es sollte eine Bezeichnung mit dem Namen "Anmeldeinformationen" vorhanden sein, mit der Sie entweder eine Kombination aus Benutzername / Kennwort oder Benutzername / privatem Schlüssel verwenden können.

Wenn Sie für jedes Repository, für das Sie Tests ausführen möchten, einen Bereitstellungsschlüssel erstellen, fügen Sie diesen Bereitstellungsschlüssel als privaten Schlüssel in den Anmeldeinformationen hinzu, und Sie sollten bereit sein.

c4urself
quelle
Hallo. Ich habe das so funktionieren lassen, wie ich es oben erklärt habe - es brauchte einen Eintrag "unknown_hosts". Ich würde die Methode bevorzugen, die Sie beschreiben, aber ich kann sie nicht zum Laufen bringen. Ich habe einen privaten + öffentlichen Schlüssel generiert (id_rsa und id_rsa.pub). Ich habe den Bereitstellungsschlüssel auf dem Repo eingerichtet (id_rsa.pub). Ich habe versucht, beide Schlüssel hinzuzufügen und habe es mit meinem Git-Benutzernamen und Jenkins versucht. Ich bin mir nicht sicher, wo ich hier falsch liege.
Jason Prawn