Estabelecimento de conexão SSH muito lento

Estabelecimento de conexão SSH muito lento

Estou tendo problemas ao me conectar à minha VM Local Centos 6.3 com 500 MB de RAM.

Abaixo está a saída da ssh -vvv localhostconexão:

OpenSSH_6.3, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /usr/local/etc/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [127.0.0.1] port 22.
^^^^^^^^^^ Loading this statement takes more than a minute

debug1: Connection established.
...

debug1: Next authentication method: password 
root@localhost's password:
^^^^^^^^^^ This step takes a minute too

debug3: packet_send2: adding 64 (len 50 padlen 14 extra_pad 64)
debug2: we sent a password packet, wait for reply
debug1: Authentication succeeded (password).
Authenticated to localhost ([127.0.0.1]:22).
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug3: packet_set_tos: set IP_TOS 0x10
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug2: channel 0: request shell confirm 1
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Last login: Wed Oct  9 13:27:02 2013 from 10.0.0.2

Por favor, sugira como posso me livrar desse atraso.

Responder1

Meu palpite é que o problema são os tempos limite das solicitações de DNS. Tente conectar-se por endereço IP em vez de nome de host e desative a UseDNSopção no servidor ao qual você está se conectando. Fora isso:

  1. supondo que você esteja se conectando a partir do host da VM, eu esperaria ssh localhostconectar-se ao host, não à VM convidada. A menos que você tenha alguma configuração de rede interessante, é claro.

  2. para o primeiro atraso, você pode querer executá-lo stracee verificar em qual chamada de sistema o sshcliente está conectado.

  3. para o segundo atraso, execute topna VM para ver o que está acontecendo enquanto você se conecta a ela. Ao mesmo tempo, sugiro executar o daemon SSH em modo de depuração em uma porta alternativa e conectar-se a essa instância - você verá onde ele está esperando - basta executar (como root):

    sshd -ddd -p 2222 -o UsePrivilegeSeparation=no
    

    isso iniciará o daemon SSH na porta 2222, registrará muitas informações ( -ddd) e não usará a separação de privilégios durante o login (desativar a separação de privilégios tornará mais fácil ver o que está acontecendo no strace, já que apenas um processo será usado) . Você também pode adicionar -o UseDNS=nopara desativar a opção mencionada acima.

Responder2

Se for uma VM, pode ser devido à entropia insuficiente.Use esta linha para monitorar a entropia disponível antes/durante sua tentativa de conexão:

while true; do sleep 5; cat /proc/sys/kernel/random/entropy_avail; done

Se já estiver bastante baixo ou diminuir significativamente durante a tentativa de conexão, é muito provável que seja o culpado.

EDITAR:Fazer isso afeta a própria entropia disponível, pois iniciar novos processos consome entropia. Veja tambémhttps://blog.flameeyes.eu/2011/03/entropy-broken

Você pode aumentar a entropia disponível instalando um daemon ( rng-toolsou clrngd) que tenta coletar mais entropia ou certificando-se de que sua VM tenha um dispositivo de entropia adequado atribuído, que depende de sua solução de virtualização.

informação relacionada