Algorithme de négociation échoue SSH dans Jenkins
Je suis en train de ssh à partir de Jenkins sur un serveur local, mais l'erreur suivante est générée:
[SSH] Exception:Algorithm negotiation fail
com.jcraft.jsch.JSchException: Algorithm negotiation fail
at com.jcraft.jsch.Session.receive_kexinit(Session.java:520)
at com.jcraft.jsch.Session.connect(Session.java:286)
at com.jcraft.jsch.Session.connect(Session.java:150)
at org.jvnet.hudson.plugins.SSHSite.createSession(SSHSite.java:141)
at org.jvnet.hudson.plugins.SSHSite.executeCommand(SSHSite.java:151)
at org.jvnet.hudson.plugins.SSHBuildWrapper.executePreBuildScript(SSHBuildWrapper.java:75)
at org.jvnet.hudson.plugins.SSHBuildWrapper.setUp(SSHBuildWrapper.java:59)
at hudson.model.Build$BuildExecution.doRun(Build.java:154)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533)
at hudson.model.Run.execute(Run.java:1754)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:89)
at hudson.model.Executor.run(Executor.java:240)
Finished: FAILURE
Installé la version de Java sur le serveur SSH:
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
Installé la version de java sur le client:
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b18)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
Aussi essayé cette solution:
JSchException: Algorithme de négociation échoue
mais cela ne fonctionne pas. Du mastic tout semble ok. La connexion est établie, mais quand j'ai déclencher le Jenkins travail de l'erreur est levée. Devrais-je essayer une autre version du serveur ssh. Maintenant, je suis en utilisant copssh.
- a ma réponse vous aider? Si oui, pourriez-vous s'il vous plaît marquer ma réponse acceptée? Merci!
- Désolé pour le retard. Il travaille maintenant.
Vous devez vous connecter pour publier un commentaire.
TL;DR modifier votre sshd_config et d'activer le support pour l'échange de clés diffie-hellman-groupe-exchange-sha1 et l'échange de clés diffie-hellman-group1-sha1 dans KexAlgorithms:
Je soupçonne que le problème est apparu après le changement suivant dans OpenSSH 6.7: "L'ensemble par défaut des algorithmes de chiffrement et de Mac a été modifié pour éliminer dangereux algorithmes.". (voir changelog). Cette version a été publiée sur Oct, 6, et sur Oct, 21 de Debian testing (voir Changelog).
OpenSSH permet de l'clés suivants algorithmes d'échange par défaut:
Alors que JSch prétend ces algorithmes (voir la rubrique "caractéristiques") pour l'échange de clés:
Donc en effet, ils ne sont pas d'accord sur un algorithme d'échange de clés. La mise à jour de sshd_config (et de redémarrer le serveur SSH) fait le tour. Apparemment JSch est censé supporter le "diffie-hellman-groupe-exchange-sha256" méthode depuis la version 0.1.50 (voir changelog).
Comme indiqué ici: http://sourceforge.net/p/jsch/mailman/message/32975616/, dans JSch 0.1.51 l'échange de clés diffie-hellman-groupe-exchange-sha256 est mis en œuvre, mais pas activé. Vous pouvez l'activer à l'aide de la
setConfig
fonction de la façon:Nous avons eu le même problème avec notre jenkins (2.21) et le SSH plugin (2.4)
Notre solution est d'utiliser les originaires d'exécution du shell. Il semble que les plugins jenkins ne pas utiliser la même connexion ssh réglages que ceux originaires d'shell.
Donc, vous pourriez faire du ssh connecter comme ceci (sans les ssh-plugin):
Si vous avez des commandes à distance avec le code ci-dessus, la connexion fonctionne très bien.
Avec cette solution, vous n'avez pas besoin de ssh-plugin plus.
Pour votre information: Nous avons eu le problème sur notre mittwald serveurs depuis qu'ils ont mis à jour la openssh sur il serveurs.
Dans mon cas - OpenSSH_6.7p1 sur le serveur, j'ai dû modifier KexAlgorithms et Mac (en plus hmac-md5,hmac-sha1,hmac-sha1-96,hmac-md5-96 valeurs):
Ci-dessus doivent être mises placé:
Puis redémarrez le ssh:
Que j'ai rencontré exactement le même problème.
QUE Matthieu nous a proposé de nous avoir à ajouter certains d'échange de clés algoritm dans sshd-fichier de configuration présent dans cygwin>etc>sshd_config.
J'ai juste ajouté à la suite et sa a fonctionné pour moi,
KexAlgorithms diffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Mais le fichier est en lecture seule, afin de nous fournir tous les accès comme lire,écrire et exécuter si invite de commande. "chmode 777 sshd_config".
ajouter ensuite au-dessus de la mention des algorithmes. arrêter le service sshd par "net stop sshd" et puis il commence "net start sshd".
Avoir du plaisir....
Que de cette contribué à moi.
https://issues.jenkins-ci.org/browse/JENKINS-25258?focusedCommentId=274232&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-274232
jsch-0.1.42.jar
dessh/WEB-INF/lib
ainsi que les copier dansjsch-0.1.53.jar
. Aucune idée de la façon dont elle choisit de l'utiliser, mais il ne semble pas à la matière que le nouveau pot a un nom différent. Je suis en cours d'exécution jenkins sur windows.Au lieu de corriger cela sur le côté serveur, vous pouvez également mettre à jour le côté client. Si vous utilisez http://maven.apache.org/wagon/wagon-providers/wagon-ssh/ dans une version plus récente (>= 2.12 - version actuelle de la Sep. 2018 est 3.2.0), ce problème ne se produit plus.
Mise à jour 2018-10-21: La dernière version est maintenant 3.2.0.
En raison de diverses questions de vulnérabilité, je conseille à toujours utiliser une version actuelle de SSH ou SSL logiciel de toute façon.
Merci de vérifier et de mettre à jour vos dépendances dans votre code.
J'ai également rencontrés le même problème avec les mêmes exceptions Jenkins console.
Ensuite, j'ai essayé Matthieu Wipliez de la solution. Mais cela n'a pas fonctionné comme même configuration a déjà été fait sur mon serveur SSH(la machine Distante: Linux ubuntu 16.04).
Après avoir passé quelques heures, je viens de vérifier mon SSH plugin's la version 2.1 et je viens de le mettre à jour à la dernière version (2.5).
Et devinez quoi, il a travaillé!!
Je ne sais pas si cela va fonctionner dans tous les cas similaire, mais je voudrais suggérer d'essayer de le premier. Il peut sauver votre temps.
Si vous êtes ici parce que vous recevez le même message d'erreur dans PyCharm -
Je suis en utilisant 2016.2.3 et peut uniquement mettre à jour si je convertir le modèle de l'abonnement. Le problème est que vu sur ma boîte de Windows. Je n'ai pu obtenir la distance du serveur de mise à jour comme décrit dans les autres réponses (KexAlgorithms).
Ma solution est
PyCharm redémarre et je suis capable de faire du ssh vers des serveurs distants.