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
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.
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.
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
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.
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