Como depurar tempos limite de conexão de saída esporádica?

4

Estou com problemas para me conectar ao host remoto por meio do SSH. Limitei o problema ao meu host local somente , já que outros clientes fazem conexões nominais (rápidas e estáveis) todas as vezes.

A tentativa de conectar-se a remotehost.example.net de localhost via SSH expirará em todas as tentativas, com exceção de 1 em 10 (ele trava aqui e depois expira):

515 chris@localhost ~ $ ssh -vvv remotehost-root
OpenSSH_6.4, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /home/chris/.ssh/config
debug1: /home/chris/.ssh/config line 43: Applying options for remotehost-root
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to remotehost.example.net [123.123.123.123] port 12345.
^C

localhost é um sistema Arch atualizado:

517 chris@localhost ~ $ uname -a
Linux localhost 3.12.1-1-ARCH #1 SMP PREEMPT Thu Nov 21 08:18:42 CET 2013 x86_64 GNU/Linux

Estou usando um arquivo de configuração SSH para alias remotehost da seguinte forma:

521 chris@localhost .ssh $ cat ~/.ssh/config
...
host remotehost-root
  HostName remotehost.example.net
  User root
  Port 12345
  IdentityFile ~/.ssh/remotehost-root.id_rsa
...

Este é um problema recente, mas infelizmente não me lembro de fazer alterações em algo relevante. Não tenho certeza do que verificar.

Talvez seja importante notar que isso afeta todas as conexões SSH (como git sobre ssh e SFTP ) e não apenas a ferramenta SSH da linha de comando.

Não tenho nenhum problema em acessar remotehost.example.net sobre qualquer outro protocolo (por exemplo, HTTP , HTTPS , BitTorrent etc.).

A única linha ativa / descomentada em /etc/ssh/ssh_config é:

ServerAliveInterval 120

Onde mais posso procurar? Quais outras ferramentas de depuração eu posso usar (tudo o que posso pensar é executar ssh -vvv )?

Eu tentei executar o tcpdump no remotehost ao tentar uma conexão, mas não consegui descobrir como filtrar os pacotes do shell executando tcpdump , assim, o loop infinito enviando spam para fora de qualquer diagnósticos úteis.

UPDATE 1: É importante notar que eu consegui duplicar esse comportamento em um segundo host SSH, bem como em um servidor de IRC, provando (na minha opinião) que esse é um problema totalmente dentro de algumas configurações no meu host local.

UPDATE 2: Também vale a pena notar que, enquanto meu localhost tem problemas com essas conexões de saída, outros clientes (incluindo um, e um desligado, minha LAN) não têm nenhum problema com qualquer um dos mesmos hosts remotos ou quaisquer outros hosts. Mais uma vez, levando-me a acreditar que isso é apenas algum problema de configuração dentro do host local (mas talvez eu esteja errado?).

UPDATE 3: Eu removi o pacote openssh (e configs) do localhost e reinstalei, sem sucesso.

    
por Chris Tonkinson 13.12.2013 / 04:35

3 respostas

3

Um tempo limite pode acontecer se você tiver uma alta carga de CPU em sua máquina local, eu tive esse problema algumas vezes há alguns anos. Meu processo de Backup naquela época comia minha cpu de IO +.

Como o servidor ao qual eu me conectei era GPRS e, portanto, lento por design, não pensei imediatamente no host local como um problema.

Além disso, você pode, como você disse, ter um limite de conexões que você pode usar.

pessoalmente, eu verificaria os pacotes com algo como wireshark.

    
por 19.12.2013 / 18:13
3

1) Você tem GSSAPIAuthentication habilitado? Tente definir isso para "não" em / etc / ssh / sshd_config

2) Você verificou se este é um problema de pesquisa de DNS? Tente adicionar o host de destino e seu endereço IP a / etc / hosts e tente novamente seu ssh connect

3) Para fazer o seu tcpdump, você pode usar o seguinte:

tcpdump -n "port 22 and dst <ip address of destination host>"

4) Você pode postar a saída completa da depuração -vvv? Ou foi isso? Você pode mostrar o que diz depois do tempo limite?

Em qualquer ocasião em que ele trava, você também pode simplesmente fazer netstat -an | grep <ip of remote host> e, se o campo "Estado" for "SYN_SENT", saberá que ele está sendo bloqueado em algum nível.

    
por 19.12.2013 / 19:19
0

Você tentou alterar o endereço IP do cliente? Será que o firewall da LAN está bloqueando ou limitando parte do tráfego SSH proveniente desse endereço específico?

    
por 13.12.2013 / 08:22

Tags