Konfigurieren von Jenkins mit Bitbucket-Fehler

Konfigurieren von Jenkins mit Bitbucket-Fehler

Ich habe einen SSH-Schlüssel in ~/.ssh/id_rsa.pub, wenn ich mich als Jenkins-Benutzer anmelde.

Ich habe dies korrekt in Bitbucket importiert und es hat den Schlüssel akzeptiert.

Wenn ich versuche, einen Git-Klon (zur richtigen URL) durchzuführen, erhalte ich immer noch....

Building in workspace /var/lib/jenkins/jobs/Google adwords/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Google adwords/workspace - hudson.remoting.LocalChannel@2c473996
Using strategy: Default
Cloning the remote Git repository
Cloning repository origin
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:DAVID99WORLD/assessme.git
hudson.plugins.git.GitException: Could not clone [email protected]:DAVID99WORLD/assessme.git
    at hudson.plugins.git.GitAPI.clone(GitAPI.java:268)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1122)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1064)
    at hudson.FilePath.act(FilePath.java:842)
    at hudson.FilePath.act(FilePath.java:824)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1064)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1256)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)
    at hudson.model.Run.execute(Run.java:1502)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin [email protected]:DAVID99WORLD/assessme.git /var/lib/jenkins/jobs/Google adwords/workspace" returned status code 128:
stdout: Cloning into '/var/lib/jenkins/jobs/Google adwords/workspace'...

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

Kennt jemand einen Grund, warum dies auftritt? Laut der Dokumentation, die ich gelesen habe, ist ~/.ssh das richtige Verzeichnis als Jenkins-Benutzer, damit diese Datei vorhanden ist.

BEARBEITEN: Mein Jenkins-Benutzer hat keine known_hosts-Datei in ~/.ssh, aber meine auf Root-Ebene schon – sollte das so sein? Ich kann mit meinem Jenkins-Benutzer problemlos einen Klon erstellen und der Host wird dabei überhaupt nicht als Jenkins-Benutzer erwähnt.

Antwort1

Sie sollten dort den privaten Schlüssel haben, nicht nur den öffentlichen Schlüssel. Wenn Ihr öffentlicher Schlüssel ist id_rsa.pub, heißt Ihr privater Schlüssel wahrscheinlich id_rsa.

Ich nehme an, Sie haben diesen öffentlichen Schlüssel von einem anderen System (vielleicht Ihrem lokalen Desktop) kopiert?

Sie können entweder den entsprechenden privaten Schlüssel ~/.sshauch in das Jenkins-Verzeichnis kopieren oder ein neues Schlüsselpaar für Ihren Jenkins-Benutzer generieren und diesen öffentlichen Schlüssel in Bitbucket importieren.

So generieren Sie ein neues SSH-Schlüsselpaar:

cd ~/.ssh
ssh-keygen -t rsa

Dadurch wird die folgende Ausgabe generiert:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/b/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jenkins/.ssh/id_rsa.
Your public key has been saved in /home/jenkins/.ssh/id_rsa.pub.

Antwort2

Das eigentliche Problem schien zu sein, dass der Bitbucket-Server nicht in meiner Liste bekannter Hosts war. Ich musste mich als Jenkins-Benutzer anmelden und erneut einen Git-Klon ausführen, wodurch die Bitbucket-URL erneut zu den bekannten Hosts hinzugefügt wurde.

verwandte Informationen