77 votes

SSH impossible : debug1 : expecting SSH2_MSG_KEX_DH_GEX_REPLY

Nous avons un serveur XXX sur Amazon EC2.

SSH fonctionne sur un port standard (22).

J'ai placé ma pubkey dans le fichier /.ssh/authorized_keys

Ce qui est amusant, c'est qu'HIER, il fonctionnait très bien !

Mais aujourd'hui, je ne sais pas ce qui s'est passé ! Je n'arrive pas à me connecter.

ssh -vvvv nom du serveur

est bloqué sur

debug1 : attente de SSH2_MSG_KEX_DH_GEX_REPLY

J'ai vérifié mon pubkey et il est là ! (comment j'ai vérifié ?? j'ai demandé à l'autre gars de vérifier)

puis j'ai utilisé un autre ordinateur (Windows 7 + putty) et j'ai placé ma nouvelle pubkey. Et quoi ? J'ai pu me connecter ! Et c'est un autre ordinateur avec Win7 qui est sur le même LAN ce qui signifie que l'IP externe est la même.

Ma clé privée fonctionne avec d'autres serveurs, mais pas avec celui-ci.

Aidez-nous !

107voto

shgnInc Points 1574

Modifiez le MTU de l'interface réseau pour résoudre le problème. Il s'agit d'un bogue pour ubuntu 14.04.

Cela a fonctionné pour moi :

sudo ip li set mtu 1200 dev wlan0

OU

sudo ifconfig wlan0 mtu 1200

ssh ne parvient pas à se connecter à l'hôte VPN - se bloque à 'expecting SSH2_MSG_KEX_ECDH_REPLY'.

48voto

caleb Points 586

Dans mon cas, je n'ai pas l'autorisation de réduire la taille du MTU. Et la spécification manuelle du chiffrement ne fonctionne pas.

Je peux me connecter après avoir raccourci la liste des MAC en en spécifiant un, par exemple :

ssh -o MACs=hmac-sha2-256 <HOST>

32voto

neofutur Points 617

Même problème pour accéder à un serveur dédié au centre de données online.net.

Il n'y a pas de problème après un redémarrage, pas besoin de changer le MTU, la connexion ssh fonctionne pendant 1-3 semaines, puis apparaît exactement le même bug, blocage sur KEXINIT, plus possible de se connecter au serveur ssh.

Il pourrait s'agir d'une sorte de bug sshd, mais il est nécessairement déclenché par un nouveau travail qui se produit après 1-3 semaines, j'ai reproduit ce problème exact à plusieurs reprises avec de nombreux serveurs différents sur ce réseau, certains disent que cela pourrait être lié à un bug cisco, peut-être lié à certaines options DPI.

Ce problème ne s'est jamais produit avec d'autres serveurs que je gère dans d'autres centres de données, et qui ont exactement la même distro, la même configuration et la même version de sshd.

si vous ne voulez pas redémarrer tous les 10 jours parce que les pare-feu du centre de données (ou d'autres réglages de réseau) font des choses bizarres :

d'abord se connecter avec l'une de ces solutions de contournement côté client :

solution 1, diminuer votre MTU local, côté client :

ip li set mtu 1400 dev wlan0

( 1400 devrait suffire mais vous pouvez essayer d'utiliser des valeurs plus basses si nécessaire )

solution 2, en spécifiant le cryptage choisi pour la connexion ssh :

ssh -c aes256-gcm@openssh.com host

(ou essayez avec n'importe quel autre cryptogramme disponible)

Ces deux solutions de contournement côté client m'ont permis de me connecter et d'économiser mon temps de fonctionnement ; mais vous voulez résoudre ce problème côté serveur, pour toujours, afin de ne pas avoir à demander à chaque client d'ajuster localement son MTU.

Sur gentoo, j'ai simplement ajouté :

mtu_eth0="1400"

dans /etc/conf.d/net

(la même option mtu devrait être disponible quelque part dans le fichier de configuration réseau de votre distro préférée)

J'ai fixé le mtu à 1400, mais 1460 est probablement suffisant dans la plupart des cas.

une autre solution pourrait être d'utiliser les règles iptables suivantes pour gérer la fragmentation :

# /sbin/iptables -I OUTPUT -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# /sbin/ip6tables -I OUTPUT -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

( mais personnellement, je n'en avais pas besoin jusqu'à présent )

Notez également que les symptômes de ce problème peuvent également être :

debug1: SSH2_MSG_KEXINIT sent

pas seulement

debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY

éditer mars 2016 :

  • abaisser le mtu à 1400 sur le serveur fonctionne presque toujours, mais j'ai récemment eu le cas où le mtu avait déjà été abaissé à 1400 sur le serveur et le problème est réapparu, et le client a également dû abaisser le mtu à 1400.

  • Le problème est également apparu sur les formulaires de connexion web, qui attendaient que la page se recharge avant de dire "le serveur a réinitialisé la connexion". Le problème a également été résolu après que le client a réglé le mtU sur 1400.

    liens connexes :

https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1254085

http://www.held.org.il/blog/2011/05/the-myterious-case-of-broken-ssh-client-connection-reset-by-peer/

https://nowhere.dk/articles/natty-narwhal-problems-connecting-to-servers-behind-cisco-firewalls-using-ssh

https://stackoverflow.com/questions/2419412/ssh-connection-stop-at-debug1-ssh2-msg-kexinit-sent

http://www.1-script.com/forums/ssh/ssh-hang-after-ssh2-msg-kexinit-sent-10616-.htm

http://www.snailbook.com/faq/mtu-mismatch.auto.html

11voto

SimonSC Points 51

Modification de l'algorithme Kex a fonctionné pour moi, et peut être une option si vous n'avez pas les droits système pour changer les paramètres MTU. L'équipe d'OpenSSH pourrait également se pencher sur cette question, par exemple.

ssh -o KexAlgorithms=ecdh-sha2-nistp521 fu@bar.com

10voto

rui Points 499

J'ai eu le même problème après avoir mis à jour mon ordinateur client Ubuntu. J'ai résolu mon problème en réduisant la taille de la ligne "Ciphers" dans /etc/ssh/ssh_config. Cela fonctionne également si vous spécifiez le chiffrement dans la ligne de commande (ex : ssh -c username@hostname)

Conseil d'ici :

https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/708493/comments/39

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X