SSH se a saída do comando for superior a 5 linhas

11

Fui aconselhado a fazer esta pergunta aqui: Estou desconcertado com o seguinte problema que estou enfrentando no momento.
Eu tenho um servidor Linux Debian 5.0 conectado através de um cabo Ethernet ao meu roteador DSL. Meu laptop está executando o Windows 7 e está conectado sem fio (802.11b / g) ao mesmo roteador DSL. Se eu fizer o SSH no servidor usando o Putty e tentar executar um comando que resulte em várias linhas de saída, minha sessão do SSH congela. Ex.

ls -al /             // Freezes
ls -al / > ~/boo.txt // OK
vi ~/boo.txt         // OK
top                  // Freezes

Todos os comandos acima funcionam se eu os executar diretamente no servidor ou se eu mudar a conexão do meu laptop para uma conexão com fio. O que da? Este problema está realmente me desconcertando! obrigado

Comunidade
fonte
Talvez você queira perguntar isso no StackOverflow, mas parece que pode haver um problema com caracteres especiais (talvez cores), pois o vi não faz nenhuma coloração (a menos que seja realmente o vim).
Topher Fangio
Ele tinha pedi-lo em StackOverflow, mas provavelmente seria melhor movê-lo para ServerFault ... e eu estou com Aidan: meu primeiro suspeito foi o MTU da rede.
dmckee --- gatinho ex-moderador
Ah ha ha, Sim, ServerFault, não StackOverflow ... é uma segunda-feira = P
Topher Fangio

Respostas:

9

parece um problema de MTU com fio. levemente...

é possível que você tenha jumboframes ativados? provavelmente não. de qualquer maneira - tente configurar o mtu mais baixo no debian e veja se isso ajuda.

pQd
fonte
Destacado; isso soa como um problema no MTU. Eu sugiro tentar pacotes cada vez maiores (facilmente executados usando ping) até obter erros / pacotes descartados. Ou apenas verificar configurações MTU em todos os lugares :)
MikeyB
Obrigado pessoal! MTU mais baixo no laptop fez o truque. O MTU se aplica ao remetente / receptor / ambos? Eu poderia executar ping no servidor do laptop com um tamanho de dados maior. O contrário não era verdade. Servidor Linux: ~ # ping -S 5000 Athlon64-laptop.lan PING Athlon64-laptop.lan 56 (84) bytes de dados 64 bytes de xxxx: icmp_seq = 1 ttl = 128 time = 2,71 ms No laptop Windows> ping -l 2048 Athlonon64x2-server.lan Fazendo ping no Athlon64x2-server.lan com 2048 bytes de dados: A solicitação expirou. > ping -l 1048 Athlon64x2-server.lan Pinging Athlon64x2-server.lan com 1048 bytes de dados: Resposta de xxxx: bytes = 1048 time = 3ms TTL = 64
@leftbrainlogic - os problemas com o mtu indicam que há algo suspeito na sua rede. talvez o ponto de acesso não passe os maiores quadros permitidos [1500B] para ethernet rápido? você configurou manualmente o servidor para usar jumboframes?
pQd
@pQd - Não, o servidor está apenas executando uma instalação básica do Debian 5.0. Eu aceito todos os padrões, exceto para particionamento de disco e de saída hostname do ifconfig -a está aqui: pastebin.com/f78fcbf3d
@leftbrainlogic - ok; tente diminuir o mtu conforme descrito no meu link. seu 1500B é helahtly comprimento padrão, acho que isso indica algum problema com o switch, ponto de acesso ou placa de rede wifi.
pQd
3

Provavelmente, há um problema com o MTU da sua conexão de rede - quando o servidor Linux tenta enviar muitos bytes de dados em um único pacote de rede, provavelmente o roteador está se recusando a encaminhá-lo para a caixa do Windows, porque acha que o tamanho do pacote é muito grande para enviar pela rede sem fio. Você deve conseguir reduzir o MTU da interface Ethernet na caixa Linux, e isso provavelmente resolveria o seu problema.

Para diagnosticar, tente ping -s <packetsize> <windows-ip> da caixa do linux para o IP da sua máquina windows e ping <linux-ip> <packetsize>da caixa do windows para o linux, com valores diferentes para o parâmetro packetsize, e veja se o tamanho máximo é diferente em qualquer direção.

Além disso: man pingno linux será útil para entender o que está acontecendo.

Aidan Cully
fonte
0

A primeira coisa a fazer é ativar o modo de depuração, no cliente e no servidor.

O PuTTY possui depuração interna disponível em Sessão -> Log . Observe que você precisa carregar a sessão que irá usar antes de definir as configurações de Log. As configurações de log fazem parte da configuração de uma sessão.

No servidor, você pode deixar o LogLevel em INFO (in /etc/ssh/sshd_config) e alterá-lo para DEBUG apenas se não conseguir ver nada relacionado ao seu problema. Lembre-se de sair e reiniciar o servidor ssh para aplicar as alterações ( /etc/init.d/ssh restart). Se DEBUG não fornecer informações úteis, tente DEBUG3, conforme descrito man sshd_config.

Atualize sua pergunta com suas descobertas!

Nicolas Marchildon
fonte