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!.
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.
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
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 .
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)
using https://bitbucket.org/YYYY/XX.git
vous devez supprimer le nom d'utilisateur @
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:
Sudo à l'utilisateur exécutant le processus
ssh-copy-id destinationuser@destinationhostname
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
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.
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.
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'
c'est tout!
vous pouvez maintenant relancer le travail Jenkins.
J'espère que cela résoudra votre problème.
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 '
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
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.