Não é possível SSH: debug1: esperando SSH2_MSG_KEX_DH_GEX_REPLY

24

Temos um servidor XXX no Amazon EC2.

O SSH está sendo executado em uma porta padrão (22).

Coloquei minha pubkey no arquivo /.ssh/authorized_keys

O engraçado é que, ontem, estava funcionando muito bem!

Mas hoje eu não sei o que aconteceu! Eu simplesmente não consigo entrar.

ssh -vvvv servername

está preso

debug1: esperando SSH2_MSG_KEX_DH_GEX_REPLY

Eu chequei meu pubkey e está lá! (como eu verifiquei ?? pedi ao outro cara para verificar)

e então eu usei outro computador (windows 7 + putty) e coloquei meu novo pubkey. E o que? Eu consegui entrar! E esse é outro computador com o Win7 na mesma LAN, o que significa que o IP externo é o mesmo.

Minha chave privada funciona para outros servidores, mas não com isso.

Por favor ajude!

bakytn
fonte
Eu criei novas chaves e guardei uma nova pubkey ... a mesma coisa! ha!
bakytn
fyi, seu problema não tem nada a ver com a autenticação pubkey: a troca de chaves DH ( SSH2_MSG_KEX_DH_GEX_REPLY) acontece muito antes na conexão.
quer
obrigado pela informação. Entre caras, o problema foi resolvido por si só. Eu não fiz nada, apenas tentei fazer login e tive sucesso. hah
bakytn
Latência de rede ruim? muitas gotas? É apenas uma mensagem normal.
Korjavin Ivan 13/09/11
provavelmente é. Agora não posso reproduzi-lo de nenhuma maneira. Então pode ser do meu lado.
bakytn

Respostas:

28

Mude a interface de rede MTU para resolvê-lo. Este é um erro do ubuntu 14.04.

Isso funcionou para mim:

sudo ip li set mtu 1200 dev wlan0

OU

sudo ifconfig wlan0 mtu 1200

O ssh falha ao conectar-se ao host VPN - trava em 'expecting SSH2_MSG_KEX_ECDH_REPLY'

shgnInc
fonte
sudo ip li set mtu 1400 dev eno1funcionou para mim no Ubuntu 16.04.
Márcio
Muito obrigado. Não consigo SSH ou área de trabalho remota em uma caixa específica há semanas. O HTTP funciona e as máquinas adjacentes funcionam bem. Eu tive que pular de outras máquinas para entrar.
duckbrain 30/09
12

O mesmo problema exato aqui para acessar um servidor dedicado no datacenter online.net.

Não há problema após uma reinicialização, não há necessidade de alterar o MTU, a conexão ssh funciona por 1-3 semanas e, em seguida, aparece exatamente o mesmo bug, bloqueando o KEXINIT, não é mais possível conectar o servidor ssh.

Pode ser algum tipo de bug do sshd, mas é necessariamente acionado por algumas coisas novas ocorrendo após 1-3 semanas. Reproduzi esse problema exato muitas vezes com muitos servidores diferentes nesta rede, alguns dizem que pode estar relacionado a um bug da Cisco, possivelmente relacionado a algumas opções de DPI.

Esse problema nunca aconteceu com outros servidores que eu gerencio em outros datacenters e que possuem exatamente a mesma distribuição, configuração e versão sshd.

se você não quiser reiniciar a cada 10 dias, porque os firewalls do datacenter (ou outros ajustes na rede) estão fazendo coisas estranhas:

primeiro conecte-se a uma dessas soluções alternativas do lado do cliente:

solução alternativa 1, diminuindo sua MTU local do lado do cliente:

ip li set mtu 1400 dev wlan0

(1400 deve ser suficiente, mas você pode tentar usar valores mais baixos, se necessário)

solução alternativa 2, especificando o código escolhido para a conexão ssh:

ssh -c [email protected] host

(ou tente com qualquer outro código disponível)

Ambas as soluções do lado do cliente foram feitas para mim; eu poderia conectar e economizar meu tempo de atividade; mas você deseja corrigir esse lado do servidor para sempre, para que não precise pedir a todos os clientes para ajustar localmente sua MTU.

No gentoo, acabei de adicionar:

mtu_eth0="1400"

em /etc/conf.d/net

(a mesma opção mtu deve estar disponível em algum lugar no seu arquivo de configuração de rede de distribuição preferido)

Eu configurei o mtu para 1400, mas 1460 provavelmente é suficiente na maioria dos casos.

outra solução alternativa poderia ser usar as seguintes regras do iptables para gerenciar a fragmentação:

# / 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

(mas eu pessoalmente não precisava deste até agora)

Observe também que os sintomas desse problema também podem ser:

debug1: SSH2_MSG_KEXINIT sent

não apenas

debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY

editar março de 2016:

  • abaixar o mtu para 1400 no servidor quase sempre funciona, mas recentemente tive o caso em que o mtu já estava reduzido para 1400 no servidor e o problema reapareceu, e o cliente também teve que abaixar o mtu para 1400.

  • O problema também apareceu nos formulários de logon da web, aguardando o recarregamento da página até dizer "o servidor redefiniu a conexão", também corrigido após o cliente definir o mtU para 1400.

    Links Relacionados :

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

/programming/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

neofutur
fonte
isso pode acontecer especialmente quando você tem um MTU pequeno muito incomum no lado do cliente, ou seja, você deseja usar o openvpn em uma rede de dupla natureza.
Dennis Nolte
Eu usei os valores padrão do mtu antes de ter esse problema, abaixar o mtu era a solução, não o problema. por favor, explique seu comentário.
Neofutur
9

No meu caso, não tenho permissão para diminuir o tamanho da MTU. E especificar manualmente a cifra não funciona.

Sou capaz de conectar depois de diminuir a lista de MACs, especificando uma, por exemplo:

ssh -o MACs=hmac-sha2-256 <HOST>
Lacek
fonte
Eu sabia que não seria o MTU. Se alguém mexer com a MTU no lado do servidor, isso pode afetar a taxa de transferência da rede. O problema deve ser alguma diferença de versão do OpenSSH e como eles preferem certos códigos e combinações de funções MAC.
Csaba Toth
7

Eu tive o mesmo problema depois de atualizar minha máquina cliente Ubuntu. Resolvi meu problema reduzindo o tamanho da linha "Cifras" em / etc / ssh / ssh_config. Também funciona se você especificar o código na linha de comando (ex: ssh -c nome de usuário @ nome do host)

Dica daqui:

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

rui
fonte
2

Comecei a ter esse problema hoje, no Windows (ssh distribuído com Git) e no Ubuntu.

Parece ser um bug no OpenSSH, existe um problema no LauchPad .

Funcionou para mim no Windows, forçando a cifra 3des-cbc e a chave no Ubuntu.

LawfulHacker
fonte
2

Alterar o KexAlgorithm funcionou para mim e pode ser uma opção em que você não tem os direitos do sistema para alterar as configurações da MTU. Esse também pode ser um problema para a equipe do OpenSSH. por exemplo

ssh -o KexAlgorithms=ecdh-sha2-nistp521 [email protected]
SimonSC
fonte
-1

resolvemos comentando a linha Ciphers em / etc / ssh / ssh_config

user362323
fonte
-2

Parece claro que o diálogo de opções causa um problema, porque alterei a ordem em que Putty negocia a troca de chaves e o problema resolvido.

rfg
fonte
1
O que parece claro? Esta pergunta foi respondida (com uma resposta aceita) há mais de 4 anos.
David Makogon
-3

cmiiw

  • verifique sua permissão ~ / .ssh / allowed_keys, deve ser 600

  • verifique em / var / log / secure, / var / log / messages ou / var / log / auth

chocripple
fonte
A authorized_keyspermissão não tem nada a ver com o erro, pois o cliente está preso durante a negação de protocolo anterior. Verificar os logs do servidor pode ajudar, mas esta linha é um comentário - com voto negativo.
try-catch-finalmente