SSH, wenn die Befehlsausgabe mehr als 5 Zeilen umfasst

11

Mir wurde geraten, diese Frage hier zu stellen: Ich bin verblüfft über das folgende Problem, das ich derzeit habe.
Ich habe einen Debian 5.0 Linux-Server, der über ein Ethernet-Kabel mit meinem DSL-Router verbunden ist. Auf meinem Laptop läuft Windows 7 und er ist drahtlos (802.11b / g) mit demselben DSL-Router verbunden. Wenn ich mit Putty eine SSH-Verbindung zum Server herstelle und versuche, einen Befehl auszuführen, der zu mehreren Ausgabezeilen führt, friert meine SSH-Sitzung ein. Ex.

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

Alle oben genannten Befehle funktionieren, wenn ich sie direkt auf dem Server ausführe oder wenn ich die Verbindung meines Laptops in eine Kabelverbindung ändere. Was gibt? Dieses Problem verwirrt mich wirklich! Vielen Dank

Gemeinschaft
quelle
Vielleicht möchten Sie dies bei StackOverflow fragen, aber es scheint, als wäre es ein Problem mit Sonderzeichen (Farbe vielleicht), da vi keine Färbung vornimmt (es sei denn, es ist tatsächlich vim).
Topher Fangio
Er hat es bei StackOverflow gefragt, aber es wäre wahrscheinlich besser, es auf ServerFault zu verschieben ... und ich bin bei Aidan: Mein erster Verdächtiger war die Netzwerk-MTU.
dmckee --- Ex-Moderator Kätzchen
Ah ha ha, ja, ServerFault, nicht StackOverflow ... es ist ein Montag = P
Topher Fangio

Antworten:

9

klingt wie ein kabelgebundenes MTU-Problem. leicht...

Ist es möglich, dass Sie Jumboframes aktiviert haben? wahrscheinlich nicht. Wie auch immer - versuchen Sie, das untere MTU auf dem Debian einzustellen und prüfen Sie, ob es hilft.

pQd
quelle
Abgeordnet; Das klingt nach einem MTU-Problem. Ich würde vorschlagen, immer größere Pakete zu versuchen (einfach mit Ping zu erledigen), bis Sie Fehler / verworfene Pakete erhalten. Oder überprüfen Sie einfach die MTU-Einstellungen überall :)
MikeyB
Danke Leute! Eine niedrigere MTU auf dem Laptop hat es geschafft. Gilt MTU für Sender / Empfänger / beide? Ich könnte den Server vom Laptop mit größeren Datenmengen anpingen. Das Gegenteil war nicht der Fall. Linux-Server: ~ # ping -S 5000 athlon64-Laptop.lan PING athlon64-Laptop.lan 56 (84) Datenbytes 64 Bytes von xxxx: icmp_seq = 1 ttl = 128 Zeit = 2,71 ms Auf Windows-Laptop> Ping -l 2048 athlon64x2-server.lan Ping athlon64x2-server.lan mit 2048 Datenbytes: Zeitüberschreitung bei Anforderung. > ping -l 1048 athlon64x2-server.lan Ping athlon64x2-server.lan mit 1048 Datenbytes: Antwort von xxxx: Bytes = 1048 Zeit = 3 ms TTL = 64
@leftbrainlogic - Probleme mit mtu deuten darauf hin, dass in Ihrem Netzwerk etwas faul ist. Vielleicht passieren Accesspoints nicht die größten zulässigen [1500B] Frames für schnelles Ethernet? Haben Sie den Server manuell für die Verwendung von Jumboframes konfiguriert?
pQd
@pQd - Nein, auf dem Server wird gerade eine Vanilla-Installation von Debian 5.0 ausgeführt. Ich nahm alle Standardwerte mit Ausnahme von Plattenpartitionierung und Hostnamen Ausgabe von ifconfig -a ist hier: pastebin.com/f78fcbf3d
@leftbrainlogic - ok; Versuchen Sie, die MTU wie in meinem Link beschrieben zu senken. Ihr 1500B hat eine normale Standardlänge. Ich denke, dies weist auf ein Problem mit dem Switch, dem Access Point oder der WLAN-Netzwerkkarte hin.
pQd
3

Es liegt wahrscheinlich ein Problem mit der MTU Ihrer Netzwerkverbindung vor. Wenn der Linux-Server versucht, zu viele Datenbytes in einem einzelnen Netzwerkpaket zu senden, weigert sich der Router wahrscheinlich, diese an die Windows-Box weiterzuleiten, da er der Meinung ist, dass die Paketgröße gleich ist zu groß, um über das drahtlose Netzwerk zu senden. Sie sollten in der Lage sein, die MTU für die Ethernet-Schnittstelle auf der Linux-Box zu reduzieren, und dies würde wahrscheinlich Ihr Problem lösen.

Versuchen Sie zur Diagnose ping -s <packetsize> <windows-ip> von der Linux-Box zur IP Ihres Windows-Computers und ping <linux-ip> <packetsize>von der Windows-Box zur Linux mit unterschiedlichen Werten für den Paketgrößenparameter, ob die maximale Größe in beiden Richtungen unterschiedlich ist.

Außerdem: Unter man pingLinux ist es hilfreich zu verstehen, was los ist.

Aidan Cully
quelle
0

Als erstes müssen Sie den Debug-Modus sowohl auf dem Client als auch auf dem Server aktivieren.

PuTTY verfügt über ein integriertes Debugging, das unter Sitzung -> Protokollierung verfügbar ist . Beachten Sie, dass Sie die Sitzung, die Sie verwenden möchten, laden müssen, bevor Sie die Protokollierungseinstellungen festlegen. Die Protokollierungseinstellungen sind Teil der Konfiguration einer Sitzung.

Auf dem Server können Sie die LogLevel auf INFO (in /etc/ssh/sshd_config) belassen und nur dann in DEBUG ändern, wenn Sie nichts zu Ihrem Problem sehen können. Denken Sie daran, sich abzumelden und den SSH-Server neu zu starten, um die Änderungen zu übernehmen ( /etc/init.d/ssh restart). Wenn DEBUG keine nützlichen Informationen liefert, versuchen Sie es mit DEBUG3 gemäß man sshd_config.

Bitte aktualisieren Sie Ihre Frage mit Ihren Ergebnissen!

Nicolas Marchildon
quelle