web-dev-qa-db-fra.com

La vérification de la clé de l'hôte Jenkins a échoué

J'ai un problème avec jenkins, le réglage "git" indique l'erreur suivante:

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

J'ai testé avec ssh:

[email protected]:person/projectmarket.git

C'est une erreur:

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

J'ai également effectué ces étapes avec "clé SSH".

Se connecter sous Jenkins

Sudo su jenkins

Copiez votre clé github dans le dossier Jenkins .ssh

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

Renommer les clés

mv id_rsa_github id_rsa
mv id_rsa_github.pub id_rsa.pub

mais ne fonctionne toujours pas git référentiel dans jenkins.

merci par aide!.

152
A. M. Mérida

Passez à l'utilisateur jenkins et exécutez la commande manuellement:

git ls-remote -h [email protected]:person/projectmarket.git HEAD

Vous recevrez l'avertissement standard SSH lors de la première connexion à un nouvel hôte via SSH:

The authenticity of Host 'bitbucket.org (207.223.240.181)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?

Tapez yes et appuyez sur Entrée. La clé de l'hôte pour bitbucket.org sera maintenant ajoutée au fichier ~/.ssh/known_hosts et vous n'obtiendrez plus cette erreur dans Jenkins.

174
ctc

Jenkins est un compte de service, il n'a pas de Shell par conception. Il est généralement accepté que les comptes de service. ne devrait pas pouvoir se connecter de manière interactive.

Pour résoudre le problème "Echec de la vérification de la clé de l'hôte Jenkins", procédez comme suit. J'ai utilisé Mercurial avec des jenkins.

1) Exécuter les commandes suivantes sur le terminal

             $ Sudo su -s /bin/bash jenkins

fournir un mot de passe

2) Générez une clé privée publique à l’aide de la commande suivante:

              ssh-keygen

vous pouvez voir la sortie en tant que ::

Generating public/private rsa key pair. 
Enter file in which to save the key (/var/lib/jenkins/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

3) Appuyez sur Entrée -> Ne donnez aucune phrase secrète -> appuyez sur Entrée

             Key has been generated

4) allez à -> cat /var/lib/jenkins/.ssh/id_rsa.pub

5) Copier la clé de id_rsa.pub

6) sortie de bash

7) ssh@yourrepository

8) vi .ssh/authorized_keys

9) coller la clé

10) sortie

11) Connexion manuelle au serveur Mercurial

Remarque: Les Pls se connectent manuellement, sinon Jenkins donnera à nouveau l'erreur "Echec de la vérification de l'hôte"

12) une fois fait manuellement, allez maintenant à Jenkins et donnez la construction

Prendre plaisir!!!

Bonne chance

38
Feroz Ahmed Ansari

Ou vous pouvez utiliser:

ssh -oStrictHostKeyChecking=no Host

Ce sera peu sûr (homme au milieu des attaques), mais la solution la plus simple.

La meilleure façon de le faire est de générer les correspondances correctes entre l'hôte et l'adresse IP. Ainsi, ssh ne se plaindra pas:

#!/bin/bash

for domain in "github.com" "bitbucket.org"; do
    sed -i "/$domain/d" ~/.ssh/known_hosts
    line=$(ssh-keyscan $domain,`nslookup $domain | awk '/^Address: / { print $2 ; exit }'`)
    echo $line >> ~/.ssh/known_hosts
done

Extrait de Gist .

20
FelikZ

Si j'avais le même problème, je le répare comme ça:

réinitialiser l'autorisation sur id_rsa * uniquement pour l'utilisateur actuel pas de groupe pas d'autre

chmod o-rwx ~/.ssh/id*
chmod G-rwx ~/.ssh/id*

ls -lart ~/.ssh/


-rw-------  1 jenkins nogroup  398 avril  3 09:34 id_rsa.pub
-rw-------  1 jenkins nogroup 1675 avril  3 09:34 id_rsa

Et effacez ~/.ssh/know_hosts

Maintenant, connectez-vous en tant que Jenkins

Sudo su jenkins

Essayez les commandes jenkins

git ls-remote -h [email protected]:user/project.git HEAD

Si aucun problème n'apparaît, jenkins pourra maintenant connecter le repo (pour moi ^^ au moins)

6
Loodub

using https://bitbucket.org/YYYY/XX.git

vous devez supprimer le nom d'utilisateur @

4
im9527
  • Assurez-vous que nous ne modifions aucune des propriétés par défaut de sshd_config pour ignorer l'erreur.

  • Échec de la vérification de l'hôte - Une entrée manquante du nom d'hôte dans le fichier known_hosts

  • Connectez-vous au serveur sur lequel le processus échoue et procédez comme suit:

    1. Sudo à l'utilisateur exécutant le processus

    2. ssh-copy-id destinationuser@destinationhostname

    3. Il sera invité comme ceci pour la première fois, dites oui et il demandera également un mot de passe pour la première fois:

      The authenticity of Host 'sample.org (205.214.640.91)' can't be established.
      RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
      Are you sure you want to continue connecting (yes/no)? *yes*
      

      Invite de mot de passe? donne le mot de passe

    4. Maintenant, à partir du serveur sur lequel le processus est en cours, utilisez ssh destinationuser@destinationhostname. Il faut se connecter sans mot de passe.

      Remarque: Ne modifiez pas les autorisations par défaut des fichiers du répertoire de l'utilisateur . Ssh , vous vous retrouverez avec différents problèmes.

3
GANESH

SSH

Si vous essayez avec SSH, alors l'erreur vérification de la clé de l'hôte peut être due à plusieurs raisons. Suivez ces étapes pour surmonter toutes les raisons.

  1. Définissez la variable d'environnement sur HOME et indiquez l'adresse en tant que répertoire racine du dossier . Ssh. Par exemple: - Si votre fichier .ssh est conservé dans le dossier Nom. C:/Utilisateurs/Nom.
  2. Assurez-vous maintenant que la clé publique SSH est également fournie dans le lien du référentiel. Soit c'est github ou bitbucket ou tout autre.
  3. Ouvrez git bash. Et essayez de cloner le projet à partir du référentiel. Cela vous aidera à ajouter l'URL de votre référentiel dans le fichier known_Host, qui est créé automatiquement dans le dossier .ssh.
  4. Maintenant, ouvrez Jenkins et créez un nouvel emploi. Puis cliquez sur configurer.
  5. fournissez l'URL de clonage dans la gestion du code source sous Git. L’URL doit commencer par [email protected]/......... ou ssh: // proje ........
  6. Sous les informations d'identification, vous devez ajouter le nom d'utilisateur et le mot de passe de votre formulaire de référentiel avec lesquels vous clonez le projet. Sélectionnez cette information d'identification.
  7. Et maintenant, appliquez et enregistrez la configuration.
  8. Bingo! Commencez à construire le projet. J'espère que maintenant vous n'obtiendrez aucune erreur de vérification de clé d'hôte!
2
Prem Choudhary

La meilleure façon de simplement utiliser votre "url git" au format "https" dans le fichier Jenkins ou à l’endroit où vous le souhaitez.

git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'

2
Nitin
  1. connectez-vous en tant que Jenkins en utilisant: "Sudo su -s/bin/bash jenkins"
  2. git clone le repo désiré qui cause l'erreur de clé
  3. il vous demandera d'ajouter la clé en indiquant Oui/Non (entrez oui ou y)

c'est tout!

vous pouvez maintenant relancer le travail Jenkins.

J'espère que cela résoudra votre problème.

1
Timothy Asir

Copiez les clés de l'hôte à partir de bitbucket et de github:

ssh root @ deployserver 'echo "$ (ssh-keyscan -t rsa, dsa bitbucket.org)" ">> /root/.ssh/known_hosts' ssh root @ deployserver 'echo" $ (ssh-keyscan -t rsa, dsa github .com) ">> /root/.ssh/known_hosts '

1
Marco M

Essayer

ssh-keygen -R nom d'hôte

-R nom_hôte Supprime toutes les clés appartenant à nom_hôte d'un fichier known_hosts. Cette option est utile pour supprimer les hôtes hachés

1
Aswathy Unni

J'ai rencontré ce problème et il s'est avéré que le service Jenkins n'était pas exécuté en tant qu'utilisateur jenkins. Donc, exécuter les commandes en tant qu’utilisateur jenkins fonctionnait parfaitement.

0
Jeff Hutchins