
James
Ich versuche, Jenkins mit einem von GitHub gehosteten Repository (unter Verwendung des Jenkins Git-Plugins) zum Laufen zu bringen. Das Repository verfügt über mehrere Git-Submodule, daher bin ich mir nicht sicher, ob ich versuchen möchte, mehrere Bereitstellungsschlüssel zu verwalten.
Mein persönliches GitHub-Benutzerkonto ist ein Mitarbeiter jedes der Projekte, die ich mit Jenkins einbringen möchte, daher habe ich darin einen SSH-Schlüssel generiert /var/lib/jenkins/.ssh
und fügte es meinem persönlichen GitHub-Konto hinzu.
Wenn ich jedoch versuche, die Repository-URL zu meiner Jenkins-Projektkonfiguration hinzuzufügen, erhalte ich Folgendes:
Failed to connect to repository : Command "git ls-remote -h [email protected]:***/***.git HEAD" returned status code 128:
stdout:
stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly
Ebenso erhalte ich, wenn ich einen Build plane:
stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly
Ich habe auch versucht, eine SSH-Konfigurationsdatei wie beschrieben einzurichten Hieraber ohne Erfolg.
Kann jemand Licht ins Dunkel bringen? Danke
BEARBEITEN
Ich sollte hinzufügen, dass ich CentOS 5.8 verwende

Tuxdude
Es sieht aus wie die github.com
Host, mit dem Jenkins eine Verbindung herzustellen versucht, ist nicht unter dem Jenkins-Benutzer aufgeführt $HOME/.ssh/known_hosts
. Jenkins läuft auf den meisten Distributionen als Benutzer jenkins
und hat daher seine eigene .ssh
Verzeichnis zum Speichern der Liste der öffentlichen Schlüssel und known_hosts
.
Die einfachste Lösung, die ich mir vorstellen kann, um dieses Problem zu beheben, ist:
# Login as the jenkins user and specify shell explicity,
# since the default shell is /bin/false for most
# jenkins installations.
sudo su jenkins -s /bin/bash
cd SOME_TMP_DIR
# git clone YOUR_GITHUB_URL
# Allow adding the SSH host key to your known_hosts
# Exit from su
exit
Haben Sie versucht, sich als jenkins-Benutzer anzumelden?
Versuche dies:
sudo -i -u jenkins #For RedHat you might have to do 'su' instead.
git clone [email protected]:your/repo.git
Oft sehen Sie einen Fehler, wenn der Host nicht hinzugefügt oder autorisiert wurde (daher melde ich mich immer manuell als hudson/jenkins für die erste Verbindung zu github/bitbucket an), aber der von Ihnen eingefügte Link behebt das angeblich.
Wenn das obige nicht funktioniert, versuchen Sie, den Schlüssel erneut zu kopieren. Stellen Sie sicher, dass es sich um den Pub-Schlüssel handelt (dh id_rsa.pub). Vielleicht hast du ein paar Charaktere übersehen?
Demzufolge Artikelkönnen Sie den folgenden Befehl versuchen:
ssh-add -l
Wenn Ihr Schlüssel nicht in der Liste ist, dann
ssh-add /var/lib/jenkins/.ssh/id_rsa_project
Dies funktioniert für mich, wenn Sie die Konfiguration und die private Schlüsseldatei in der Datei haben /Jenkins/.ssh/ du musst chown (Besitzer ändern) für diese 2 Dateien dann neu starten jenkins, damit die jenkins-Instanz diese beiden Dateien lesen kann.
10021100cookie-checkVerwalten von SSH-Schlüsseln in Jenkins für Gityes