web-dev-qa-db-fra.com

jenkins/Hudson ne peut pas se connecter à github repo

Je suis sur Ec2 avec la base Amazon AMI linux. J'ai installé Jenkins, mais lorsque je vais extraire le dépôt de github, l'erreur suivante s'affiche:

Building in workspace /var/lib/jenkins/workspace/build social
Checkout:build social / /var/lib/jenkins/workspace/build social - hudson.remoting.LocalChannel@5c7b21b
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

J'ai généré une clé pour l'utilisateur actuel qui a installé jenkins et a réussi à cloner le référentiel à l'aide de la ligne de commande git, mais jenkins ne le peut pas.

J'ai copié les fichiers ~/.ssh dans /var/lib/jenkins/.ssh

J'ai ajouté github aux hôtes connus et je suis à court de solutions à essayer. Quelqu'un sait où je vais mal? Existe-t-il un moyen de faire en sorte que Jenkins affiche la clé publique utilisée et que je puisse déboguer si elle utilise la bonne?

J'ai enlevé le nom du repo car c'est un repo privé

21
Chris Mccabe

L'erreur semble être: La vérification de la clé de l'hôte a échoué. 

Vous devez vous connecter à votre hôte Jenkins en tant qu'utilisateur Jenkins et exécuter:

ssh [email protected]

Puis répondez oui à l'invite concernant la clé de l'hôte. Cela a seulement besoin d'être fait une fois. 

Vous pouvez également ajouter "StrictHostKeyChecking no" à ~ jenkins/.ssh/config.

29
sti

J'utilise une seule machine Jenkins pour vérifier plusieurs référentiels github et j'ai eu des problèmes similaires lors de son installation. J'ai fini par configurer un fichier de configuration SSH pour Jenkins afin que SSH sache automatiquement quel fichier ID associer à chaque référentiel.

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

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

Dans la configuration du projet Jenkins sous Gestion du code source, je l’utilisais comme nom de référentiel:

git@github-ABC:user/repo.git

Enfin, j'utilise la clé publique SSH en tant que clé de déploiement dans le référentiel github.

5
mpdaugherty

Il m'a ensuite suivi:

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/

Raname les clés

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

1) Basculez l'utilisateur sur votre compte Jenkins

su jenkins

2) Créer la clé sans phrase secrète

3) ssh [email protected]

Cela a parfaitement fonctionné pour moi.

Vous devrez peut-être créer un mot de passe pour le compte Jenkins. Si c'est le cas, utilisez Sudo passwd jenkins

4
greg

Si vous vous connectez en tant que Jenkins, vous pouvez le faire.

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

où ~/.ssh/id_rsa est le chemin/de/votre/ssh/clé et il demandera le mot de passe et s'ajoutera au fichier known_hosts

0
user1786927