Estabelecimento de conexão SSH muito lento [duplicado]

2

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

Abaixo está a saída de ssh -vvv localhost connection:

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.

    
por Avinash 09.10.2013 / 10:51

2 respostas

3

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

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

  2. para o primeiro atraso, você pode querer executá-lo em strace e verificar qual chamada de sistema é o ssh do cliente.

  3. para o segundo atraso, execute top na VM para ver o que está acontecendo enquanto você está se conectando a ele. Ao mesmo tempo eu sugiro executar o daemon SSH no modo de depuração em uma porta alternativa e conectar-se a essa instância - você verá onde está esperando - apenas execute (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 facilitará a visualização do que está acontecendo no strace, pois somente um processo será usado). Você também pode adicionar -o UseDNS=no para desativar a opção mencionada acima.

por 09.10.2013 / 11:16
0

Se é uma VM, pode ser devido a 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á é bastante baixo ou diminui significativamente durante a tentativa de conexão, é muito provável que o culpado.

EDITAR: Isso afeta a entropia disponível, já que iniciar novos processos consome a entropia. Veja também link

Você pode aumentar a entropia disponível instalando um daemon ( rng-tools ou clrngd ) que tenta reunir mais entropia ou certificar-se de que sua VM possui um dispositivo de entropia adequado que depende da sua solução de virtualização.

    
por 09.10.2013 / 16:36