SSH si la sortie de la commande est supérieure à environ 5 lignes


11

On m'a conseillé de poser cette question ici: je suis déconcerté par le problème suivant que je rencontre actuellement.
J'ai un serveur Debian 5.0 Linux connecté via un câble Ethernet à mon routeur DSL. Mon ordinateur portable exécute Windows 7 et est connecté sans fil (802.11b / g) au même routeur DSL. Si je SSH sur le serveur à l'aide de Putty et tente d'exécuter une commande qui entraîne plusieurs lignes de sortie, ma session SSH se bloque. Ex.

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

Toutes les commandes ci-dessus fonctionnent si je les exécute directement sur le serveur ou si je change la connexion de mon ordinateur portable en une connexion filaire. Ce qui donne? Ce problème me déroute vraiment! Merci


Je pourrais vouloir poser cette question sur StackOverflow, mais il semble que cela pourrait être un problème avec les caractères spéciaux (couleur peut-être) car vi ne fait aucune coloration (à moins que ce ne soit en fait vim).
Topher Fangio

Il l' a demandé sur StackOverflow, mais il serait probablement préférable de le déplacer vers ServerFault ... et je suis avec Aidan: mon premier suspect était le réseau MTU.
dmckee --- chaton ex-modérateur

Ah ha ha, ouais, ServerFault, pas StackOverflow ... c'est un lundi = P
Topher Fangio

Réponses:


9

sonne comme un problème de MTU filaire. légèrement...

est-il possible que les jumboframes soient activés? probablement pas. Quoi qu'il en soit - essayez de définir un MTU inférieur sur le debian et voyez si cela aide.


Appuyé; cela ressemble à un problème MTU. Je suggérerais d'essayer des paquets de plus en plus gros (facilement fait en utilisant ping) jusqu'à ce que vous obteniez des erreurs / paquets perdus. Ou vérifiez simplement les paramètres MTU partout :)
MikeyB

Merci les gens! Un MTU plus bas sur un ordinateur portable a fait l'affaire. Le MTU s'applique-t-il à l'expéditeur / destinataire / les deux? Je pourrais envoyer une requête ping au serveur depuis un ordinateur portable avec une plus grande taille de données. L'inverse n'était pas vrai. Serveur Linux: ~ # ping -S 5000 athlon64-laptop.lan PING athlon64-laptop.lan 56 (84) octets de données 64 octets de xxxx: icmp_seq = 1 ttl = 128 time = 2,71 ms Sur ordinateur portable Windows> ping -l 2048 athlon64x2-server.lan Pinging athlon64x2-server.lan avec 2048 octets de données: la demande a expiré. > ping -l 1048 athlon64x2-server.lan Pinging athlon64x2-server.lan avec 1048 octets de données: Réponse de xxxx: octets = 1048 heure = 3 ms TTL = 64

@leftbrainlogic - des problèmes avec mtu indiquent qu'il y a quelque chose de louche dans votre réseau. Peut-être que le point d'accès ne passe pas les plus grandes trames [1500B] autorisées pour Ethernet rapide? avez-vous configuré manuellement le serveur pour utiliser des jumboframes?
pQd

@pQd - Non, le serveur exécute juste une installation vanille de Debian 5.0. J'ai accepté toutes les valeurs par défaut, à l'exception du partitionnement du disque et du nom d'hôte. La sortie de ifconfig -a est ici: pastebin.com/f78fcbf3d

@leftbrainlogic - ok; essayez d'abaisser mtu comme décrit dans mon lien. votre 1500B est de longueur standard, je pense que cela indique un problème avec le commutateur, le point d'accès ou la carte réseau wifi.
pQd

3

Il y a probablement un problème avec le MTU de votre connexion réseau - lorsque le serveur Linux tente d'envoyer trop d'octets de données dans un seul paquet réseau, le routeur refuse probablement de le transmettre à la boîte Windows, car il pense que la taille du paquet est trop volumineux pour être envoyé sur le réseau sans fil. Vous devriez être en mesure de réduire le MTU pour l'interface Ethernet sur la boîte Linux, et cela résoudrait probablement votre problème.

Pour diagnostiquer, essayez ping -s <packetsize> <windows-ip> de la boîte linux à l'IP de votre machine Windows, et ping <linux-ip> <packetsize>de la boîte windows à linux, avec des valeurs différentes pour le paramètre packetsize, et voyez si la taille maximale est différente dans les deux sens.

Aussi: man pingsous linux sera utile pour comprendre ce qui se passe.


0

La première chose à faire est d'activer le mode débogage, à la fois sur le client et le serveur.

PuTTY a un débogage intégré qui est disponible sous Session -> Logging . Notez que vous devez charger la session que vous allez utiliser avant de définir les paramètres de journalisation. Les paramètres de journalisation font partie de la configuration d'une session.

Sur le serveur, vous pouvez laisser le LogLevel à INFO (in /etc/ssh/sshd_config) et le changer en DEBUG uniquement si vous ne voyez rien lié à votre problème. N'oubliez pas de vous déconnecter et de redémarrer le serveur ssh pour appliquer les modifications ( /etc/init.d/ssh restart). Si DEBUG ne donne aucune information utile, essayez DEBUG3, conformément à man sshd_config.

Veuillez mettre à jour votre question avec vos résultats!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.