Pourquoi Jenkins dit “le Serveur a rejeté la 1 clé privée(s)” lors du démarrage de l'agent?
Je suis avec succès en mesure de se connecter à la machine distante en utilisant SSH mais quand je lance l'agent de Jenkins, il jette l'erreur suivante:
ERROR: Server rejected the 1 private key(s) for user1 (credentialId:xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/method:publickey)
[01/19/17 05:35:15] [SSH] Authentication failed.
hudson.AbortException: Authentication failed.
at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:1219)
at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:714)
at hudson.plugins.sshslaves.SSHLauncher$2.call(SSHLauncher.java:709)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[01/19/17 05:35:15] Launch failed - cleaning up connection
[01/19/17 05:35:15] [SSH] Connection closed.
Je peux établir la connexion SSH depuis la machine maitre pour le nœud de la machine à l'aide de user1
, cependant lorsque j'essaie de lancer l'agent en utilisant user1
de jenkins, c'est le rejet de la clé privée. Est-il une solution pour remédier à ce problème?
Vous devez vous connecter pour publier un commentaire.
- Je résoudre ce problème ci-dessous étape:
De la cible nœud esclave de la console
sudo su
“/var/lib/jenkins”
. {Note : je suis en gardant mon répertoire home dans/var/lib/jenkins
} :useradd -d /var/lib/jenkins jenkins
De l'Jenkins Maître
Copiez le id_rsa.pub clés de la Jenkins de l'utilisateur sur le maître.
cat /var/lib/jenkins/.ssh/id_rsa.pub
De la cible nœud esclave de la console
Créer un fichier authorized_keys de l'utilisateur Jenkins.
mkdir /var/lib/jenkins/.ssh
vi /var/lib/jenkins/.ssh/authorized_keys
Collez la clé de l'Jenkins maître dans le fichier vim. Enregistrer avec “:wq!”.
J'ai résolu ce problème en suivant les étapes ci-dessous:
1) assurez-vous que vous êtes sur le bon chemin dans les deux d'esclave et de maître des machines. Vous devez également vous connecter à des machines avec le droit de l'utilisateur. Dire que j'ai besoin de créer un nouveau utilisateur jenkins jenkins," et je veux que mes clés pour être dans le chemin "/home/jenkins/.ssh/", ajouter "jenkins" de l'utilisateur pour les machines en premier.
2) Maintenant créer .ssh dossier et de générer des clés ssh en utilisant les étapes indiquées dans https://support.cloudbees.com/hc/en-us/articles/222978868-How-to-Connect-to-Remote-SSH-Slaves-
3) assurez-vous de faire les étapes ci-dessus - 1 & 2 dans la base de machines ainsi
4) Vous devez avoir les clés ssh à la fois maître et esclave des machines dans le même sens et avec la même "jenkins" autorisations de l'utilisateur.
5) Enfin, ssh deux machine IPs çà et là pour vérifier la connectivité bidirectionnelle à partir de votre terminal.
6) Configurer jenkins informations d'identification et de nœuds. Assurez-vous que vous donnez à la même distance de la racine de répertoire "/home/jenkins" dans votre configuration du nœud et sélectionnez "manuellement confiance vérification de la clé de la stratégie" - comme le suggère https://linuxacademy.com/community/posts/show/topic/16008-jenkins-adding-a-slave
J'ai effectué Etape 1: l'utilisateur ajouter -d /var/lib/jenkins jenkins ; Étape 2: sudo su, passwd jenkins, chown -R jenkins /var/lib/jenkins/.ssh/* chmod 700 .ssh, et il a travaillé après la falsification autour de 2 heures...