wake-up-neo.com

jenkins/Hudson kann keine Verbindung zu Github Repo herstellen

Ich bin auf Ec2 mit der Basis Amazon AMI Linux. Ich habe Jenkins installiert, aber wenn ich das Repo von Github ziehen möchte, bekomme ich die folgende Fehlermeldung:

Building in workspace /var/lib/jenkins/workspace/build social
Checkout:build social / /var/lib/jenkins/workspace/build social - [email protected]
Using strategy: Default
Cloning the remote Git repository
Cloning repository Origin
ERROR: Error cloning remote repo 'Origin' : Could not clone [email protected]:adulion/.git
hudson.plugins.git.GitException: Could not clone [email protected]:adulion/.git
    at hudson.plugins.git.GitAPI.clone(GitAPI.Java:245)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.Java:1117)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.Java:1059)
    at hudson.FilePath.act(FilePath.Java:832)
    at hudson.FilePath.act(FilePath.Java:814)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.Java:1059)
    at hudson.model.AbstractProject.checkout(AbstractProject.Java:1218)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.Java:581)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.Java:470)
    at hudson.model.Run.run(Run.Java:1421)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.Java:46)
    at hudson.model.ResourceController.execute(ResourceController.Java:88)
    at hudson.model.Executor.run(Executor.Java:238)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o Origin [email protected]:adulion/.git /var/lib/jenkins/workspace/build social" returned status code 128:
stdout: Cloning into /var/lib/jenkins/workspace/build social...

stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly

Ich habe einen Schlüssel für den aktuellen Benutzer generiert, der Jenkins installiert hat und es geschafft hat, das Repo mit der git-Befehlszeile zu klonen, Jenkins jedoch nicht.

Ich habe die ~/.ssh-Dateien in /var/lib/jenkins/.ssh kopiert

Ich habe github zu den bekannten Hosts hinzugefügt, und ich habe keine Lösungen mehr, um es auszuprobieren. Weiß jemand, wo ich falsch liege? Gibt es eine Möglichkeit, Jenkins dazu zu bringen, den verwendeten öffentlichen Schlüssel anzuzeigen, und ich kann debuggen, wenn der richtige verwendet wird?

Ich habe den Namen des Repos entfernt, da es sich um ein privates Repo handelt

21
Chris Mccabe

Der Fehler scheint zu sein: Die Überprüfung des Hostschlüssels ist fehlgeschlagen. 

Sie sollten sich als Jenkins-Benutzer bei Ihrem Jenkins-Host anmelden und Folgendes ausführen:

ssh [email protected]

Beantworten Sie die Aufforderung zum Host-Schlüssel mit Ja. Dies muss nur einmal durchgeführt werden. 

Alternativ können Sie "~ StrictHostKeyChecking no" zu ~ jenkins/.ssh/config hinzufügen.

29
sti

Ich verwende eine einzige Jenkins-Maschine, um mehrere Github-Repositorys auszuchecken, und hatte ähnliche Probleme beim Einrichten. Am Ende habe ich eine SSH-Konfigurationsdatei für Jenkins konfiguriert, damit SSH automatisch weiß, welche ID-Datei mit jedem Repository verknüpft werden soll.

/var/lib/jenkins/.ssh/config:

Host github-ABC
  HostName github.com
  User git
  IdentityFile /var/lib/jenkins/.ssh/id_rsa_ABC

In der Jenkins-Projektkonfiguration unter Quellcodeverwaltung habe ich diesen als Repository-Namen verwendet:

[email protected]:user/repo.git

Schließlich verwende ich den öffentlichen SSH-Schlüssel als Implementierungsschlüssel im Github-Repository.

5
mpdaugherty

Er hat mir geholfen:

Einloggen unter Jenkins

Sudo su jenkins

Kopieren Sie Ihren Github-Schlüssel in den Jssk-Ordner .ssh

cp ~/.ssh/id_rsa_github* /var/lib/jenkins/.ssh/

Raname die Schlüssel

mv id_rsa_github id_rsa
mv id_rsa_github.pub id_rsa.pub
5
Max

1) Wechseln Sie den Benutzer in Ihr Jenkins-Konto

su jenkins

2) Erstellen Sie den Schlüssel ohne Passphrase

3) ssh [email protected]

Das hat perfekt für mich funktioniert.

Möglicherweise müssen Sie ein Kennwort für das Jenkins-Konto erstellen, wenn Sie Sudo passwd jenkins verwenden.

4
greg

Wenn Sie sich als Jenkins anmelden, können Sie dies tun

ssh -i ~/.ssh/id_rsa [email protected]

dabei ist ~/.ssh/id_rsa der Pfad/zu/Ihrem/ssh/key und er wird zur Eingabe des Kennworts aufgefordert und zur Datei known_hosts hinzugefügt

0
user1786927