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!


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'


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 aes256-gcm@openssh.com 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


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>

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


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.


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 fu@bar.com

-1

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


-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.


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.