Ich habe ein Problem mit Jenkins . Wenn Sie "git" einstellen, wird der folgende Fehler angezeigt:
Failed to connect to repository : Command "git ls-remote -h https://[email protected]/person/projectmarket.git HEAD" returned status code 128:
stdout:
stderr: fatal: Authentication failed
Ich habe mit ssh getestet :
[email protected]:person/projectmarket.git
Dies ist ein Fehler:
Failed to connect to repository : Command "git ls-remote -h [email protected]:person/projectmarket.git HEAD" returned status code 128:
stdout:
stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly
Ich habe diese Schritte auch mit "SSH-Schlüssel" ausgeführt.
Loggen Sie sich unter Jenkins ein
sudo su jenkins
Kopieren Sie Ihren Github-Schlüssel in den Ordner Jenkins .ssh
cp ~/.ssh/id_rsa_github* /var/lib/jenkins/.ssh/
Benennen Sie die Schlüssel um
mv id_rsa_github id_rsa
mv id_rsa_github.pub id_rsa.pub
aber immer noch nicht funktionierendes Git- Repository in Jenkins .
danke durch hilfe!.
Antworten:
Wechseln Sie zum
jenkins
Benutzer und führen Sie den Befehl manuell aus:Sie erhalten die Standard-SSH-Warnung, wenn Sie zum ersten Mal über SSH eine Verbindung zu einem neuen Host herstellen:
Geben Sie
yes
und drücken Sie die Eingabetaste. Der Hostschlüssel fürbitbucket.org
wird nun zur~/.ssh/known_hosts
Datei hinzugefügt und Sie erhalten diesen Fehler in Jenkins nicht mehr.quelle
Jenkins ist ein Dienstkonto, es hat keine Shell. Es ist allgemein anerkannt, dass Dienstkonten. sollte sich nicht interaktiv anmelden können.
Führen Sie die folgenden Schritte aus, um "Überprüfung des Jenkins-Hostschlüssels fehlgeschlagen" zu beheben. Ich habe Quecksilber mit Jenkins verwendet.
1) Führen Sie die folgenden Befehle auf dem Terminal aus
Passwort eingeben
2) Generieren Sie einen öffentlichen privaten Schlüssel mit dem folgenden Befehl:
Sie können die Ausgabe als :: sehen
3) Drücken Sie die Eingabetaste -> Geben Sie keine Passphrase ein -> drücken Sie die Eingabetaste
4) Gehen Sie zu -> cat /var/lib/jenkins/.ssh/id_rsa.pub
5) Kopieren Sie den Schlüssel aus id_rsa.pub
6) Beenden Sie die Bash
7)
ssh@yourrepository
8)
vi .ssh/authorized_keys
9) Fügen Sie den Schlüssel ein
10) verlassen
11) Melden Sie sich manuell beim Mercurial Server an
Hinweis: Bitte melden Sie sich manuell an, andernfalls geben Jenkins erneut den Fehler "Hostüberprüfung fehlgeschlagen" aus.
12) Einmal manuell erledigt, gehe jetzt zu Jenkins und gib Build
Genießen!!!
Viel Glück
quelle
Oder Sie können verwenden:
ssh -oStrictHostKeyChecking=no host
Dies ist unsicher (Mann in der Mitte greift an), aber die einfachste Lösung.
Der bessere Weg, dies zu tun, besteht darin, korrekte Zuordnungen zwischen Host und IP-Adresse zu generieren. Sie
ssh
werden sich also nicht beschweren:Auszug aus dem Kern .
quelle
Hatte das gleiche Problem, ich behebe es so:
Berechtigung für id_rsa * zurücksetzen nur für aktuellen Benutzer keine Gruppe keine andere
Und lösche ~ / .ssh / know_hosts
Jetzt als Jenkins verbinden
Probieren Sie die Jenkins-Befehle aus
Wenn kein Problem auftritt, können Jenkins jetzt das Repo verbinden (zumindest für mich ^^)
quelle
Verwenden von https://bitbucket.org/YYYY/XX.git
Sie sollten den Benutzernamen @ löschen
quelle
Stellen Sie sicher, dass wir keine der Standardeigenschaften von sshd_config bearbeiten, um den Fehler zu überspringen
Hostüberprüfung fehlgeschlagen - Definitiv ein fehlender Eintrag des Hostnamens in der
known_hosts
DateiMelden Sie sich bei dem Server an, auf dem der Prozess fehlschlägt, und gehen Sie wie folgt vor:
Sudo an den Benutzer, der den Prozess ausführt
ssh-copy-id destinationuser@destinationhostname
Es wird zum ersten Mal so gefragt, sagen Sie ja und es wird auch zum ersten Mal nach dem Passwort gefragt:
Passwortabfrage? Passwort geben
Führen Sie dies jetzt auf dem Server aus, auf dem der Prozess ausgeführt wird
ssh destinationuser@destinationhostname
. Es sollte sich ohne Passwort anmelden.Hinweis: Ändern Sie nicht die Standardberechtigungen von Dateien im .ssh- Verzeichnis des Benutzers, da sonst unterschiedliche Probleme auftreten
quelle
Definieren Sie für die Problemumgehung (z. B. Windows-Slave) die folgende Umgebungsvariable in globalen Eigenschaften:
Hinweis: Wenn Sie die Option nicht sehen, benötigen Sie wahrscheinlich das EnvInject- Plugin .
quelle
Kopieren Sie Hostschlüssel von Bitbucket und Github:
quelle
Am besten verwenden Sie einfach Ihre "Git-URL" im URL-Format "https" in der Jenkins-Datei oder wo immer Sie möchten.
git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
quelle
SSH
Wenn Sie es mit SSH versuchen, kann der Fehler bei der Überprüfung des Hostschlüssels mehrere Gründe haben. Befolgen Sie diese Schritte, um alle Gründe zu überwinden.
quelle
das ist es!
Sie können jetzt den Jenkins-Job erneut ausführen.
Ich hoffe, dies wird Ihr Problem beheben.
quelle
Ich bin auf dieses Problem gestoßen und es stellte sich heraus, dass das Problem darin bestand, dass der Jenkins-Dienst nicht als Jenkins-Benutzer ausgeführt wurde. Das Ausführen der Befehle als Benutzer von Jenkins funktionierte also einwandfrei.
quelle
Versuchen
ssh-keygen -R Hostname
-R Hostname Entfernt alle zum Hostnamen gehörenden Schlüssel aus einer Datei "unknown_hosts". Diese Option ist nützlich, um Hash-Hosts zu löschen
quelle