Seltsames Problem: Verbindung durch Peer zurückgesetzt

9

Ich habe einige Probleme mit SSH auf meinem Linux-Server, auf dem CentOS ausgeführt wird. Ich kann mit PuTTY oder ssh von Windows Cmd aus eine gute Verbindung zu meinem Server herstellen. Gleiches gilt für die Verwendung von sicherem FTP. Ich kann eine Verbindung zum Server herstellen, eine Liste der Dateien abrufen und alles ist in Ordnung. Das Problem tritt auf, wenn ich versuche, eine beliebige Datenmenge über das Netzwerk zu senden.

Immer wenn ich versuche, etwas über einen bestimmten Schwellenwert hinaus zu übertragen, schlägt die Verbindung fehl und es wird die Meldung "Verbindung durch Peer zurückgesetzt" angezeigt. Ich habe eine SQL-Datei mit ca. 3 MB in meinem Home-Verzeichnis. Wenn ich versuche, es per FTP zu übertragen, beginnt die Übertragung und stirbt, nachdem etwa 48 KB übertragen wurden. Dann wird eine neue Verbindung hergestellt und weitere 48 KB übertragen. Wenn ich PuTTY verwende und eine Sitzung öffne, kann ich mich gut verbinden und anmelden. Wenn ich es cat file.sqlerneut versuche, wird die Verbindung beendet und ich erhalte die Meldung "Verbindung durch Peer zurückgesetzt". Beim Wechsel von meiner lokalen Workstation zum Server ist es die gleiche Situation. Ich habe ziemlich viel Quellcode, den ich für mein auf dem Server gehostetes SVN-Repository festschreiben muss, aber die gleiche Meldung "Verbindung durch Peer zurücksetzen" wird angezeigt.

Ich weiß, dass das Problem auf meiner lokalen Workstation liegt, da ich das Macbook und SSH meiner Frau problemlos auf dem Server verwenden kann. Ich kann in die Linux-Box eines Freundes ssh (mit derselben Kitt-Installation) und von dort auf meinen Server sftp und die Datei herunterladen, eine weitere ssh-Sitzung von seiner Box auf meinen Server öffnen und die Datei katzen. Es ist also etwas los, aber ich bin mir nicht sicher, was. Hat jemand irgendwelche Ideen?

Aktualisieren

Ich habe versucht, dies noch einmal herauszufinden, und es scheint, dass die Datenmenge, die ich in einer einzelnen SSH-Sitzung übertragen kann, stark begrenzt ist. Ich drücke sofort darauf, cat file.sqlaber ich kann auch ls -leine konsistente Anzahl von Malen eingeben und erhalte auch die Meldung "Verbindung durch Peer zurückgesetzt". Ich habe es versucht:

  • Generieren neuer SSH-Schlüssel
  • Neustart meines Routers
  • Neustart meines Computers
  • Neustart des Remote-Servers

Ich habe einen tcpdump auf dem Remote-Server geschrieben, aber ich verstehe TCP nicht so detailliert, dass es für mich sehr sinnvoll ist. Ich habe das Debuggen in ssh aktiviert und hier ist der Teil des Protokolls, der zum Zurücksetzen der Verbindung führt:

Jul 24 23:10:56 server sshd[4507]: debug1: permanently_set_uid: 500/503
Jul 24 23:10:56 server sshd[4507]: debug1: Entering interactive session for SSH2.
Jul 24 23:10:56 server sshd[4507]: debug1: server_init_dispatch_20
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_open: ctype session rchan 256 win 16384 max 16384
Jul 24 23:10:56 server sshd[4507]: debug1: input_session_request
Jul 24 23:10:56 server sshd[4507]: debug1: channel 0: new [server-session]
Jul 24 23:10:56 server sshd[4507]: debug1: session_new: init
Jul 24 23:10:56 server sshd[4507]: debug1: session_new: session 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_open: channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_open: session 0: link with channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_open: confirm session
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_req: channel 0 request pty-req reply 1
Jul 24 23:10:56 server sshd[4507]: debug1: session_by_channel: session 0 channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_input_channel_req: session 0 req pty-req
Jul 24 23:10:56 server sshd[4507]: debug1: Allocating pty.
Jul 24 23:10:56 server sshd[4505]: debug1: session_new: init
Jul 24 23:10:56 server sshd[4505]: debug1: session_new: session 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_pty_req: session 0 alloc /dev/pts/2
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_req: channel 0 request shell reply 1
Jul 24 23:10:56 server sshd[4507]: debug1: session_by_channel: session 0 channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_input_channel_req: session 0 req shell
Jul 24 23:10:56 server sshd[4508]: debug1: Setting controlling tty using TIOCSCTTY.
Jul 24 23:10:59 server sshd[4507]: Read error from remote host <my-ip>: Connection reset by peer
Jul 24 23:10:59 server sshd[4507]: debug1: do_cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: do_cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: deleting credentials
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: closing session
Jul 24 23:10:59 server sshd[4505]: pam_unix(sshd:session): session closed for user <me>
Jul 24 23:10:59 server sshd[4505]: debug1: session_pty_cleanup: session 0 release /dev/pts/2

UPDATE 2:

Vor ungefähr einer Woche habe ich meine SSH-Einstellungen auf meinem Server mithilfe dieses Wiki-Beitrags geändert: http://wiki.centos.org/HowTos/Network/SecuringSSH

Da ich gelegentlich von der Arbeit aus auf meinen Server zugreifen muss und Port 21 in unserer Firewall geöffnet ist, habe ich den SSH-Port auf 21 geändert. Um dieses Problem weiter zu diagnostizieren, habe ich versucht, meine SSH-Einstellungen zurückzusetzen und den SSH-Port wieder auf 22 zu ändern Niedrig und siehe da, der Fehler tritt nicht auf, wenn ich Port 22 verwende. Ändern Sie ihn wieder auf 21 und wie am Schnürchen, wenn ich 48.000 übertragene Daten erreiche - Verbindung durch Peer zurückgesetzt.

Angesichts der Tatsache, dass ich die erste Verbindung herstellen kann und in der Vergangenheit keine Probleme beim Herstellen von FTP-Verbindungen an Port 21 hatte, scheint meine Firewall-Konfiguration nicht das Problem zu sein.

Zumindest zu diesem Zeitpunkt habe ich das Problem auf den SSH-Port auf meinem Server eingegrenzt. Drehen Sie es auf 21 und sofortige Probleme, ändern Sie es wieder auf 22, überhaupt kein Problem ...

Kann sich jemand vorstellen, warum der Listen-Port einen Unterschied machen würde? Wiederum verursacht es nur auf meiner Windows XP-Box Probleme. Lassen Sie mich wissen, wenn jemand darüber nachdenkt, was dies verursachen könnte.

Update 2:

Ich habe das Problem nur eingegrenzt und bin korrigiert - es handelt sich um ein Firewall-Problem, aber um ein Windows-Firewall-Problem, nicht um meinen Router. Wenn ich Port 21 verwende und die Windows-Firewall deaktiviere, wird die Meldung "Verbindung durch Peer zurücksetzen" nicht angezeigt. Um die offensichtliche Frage zu beantworten: Ja, Port 21 ist in der Windows-Firewall geöffnet.

Da sich dieser Computer hinter der Firewall meines Routers befindet, kann ich ihn vorerst nur deaktivieren, aber ich würde gerne herausfinden, was hier vor sich geht.

proflux
quelle
+1 Ich sehe hier das gleiche Problem auf einem Windows 7-PC, der versucht, über Port 21 eine Verbindung zu einem SSH-Server herzustellen. Die Verbindung ist für den Shell-Zugriff in Ordnung, bis ich den Tunnel über dieselbe Verbindung verwende, um weitere Daten zu übertragen. Alessandros Antwort unten hat es für mich behoben.
Wim Coenen
siehe auch unix.stackexchange.com/questions/84843/…
Jens Timmerman

Antworten:

9

Sie können mit diesem Befehl über die Befehlszeile lösen (geben Sie dies als Administrator ein):

netsh advfirewall set global statefulftp disable

Alessandro Sperindé
quelle
+1 das hat es für mich behoben. Aus Gründen der Übersichtlichkeit: Dieser Befehl muss auf dem Windows-PC ausgeführt werden.
Wim Coenen
Ausgezeichnet, ich habe genau dieses Problem schon seit einiger Zeit. Alles im Zusammenhang mit der Windows 7-Firewall. Sowohl mit Putty SSH über 21 als auch mit NXclient-Verbindungen (nxshh) über 21. netsh advfirewall set global statefulftp disable Damit kann meine nxclient-Verbindung jetzt eine Verbindung herstellen und die Verbindung abschließen, sodass ich den Desktop sehe.
1

Dies kann damit zusammenhängen, dass Ihr Router versucht, die FTP-NAT-Verbindungsverfolgung automatisch zu verarbeiten. Dies würde nur auf Port 21 geschehen, nicht auf 22. Überprüfen Sie http://www.faqs.org/docs/iptables/complexprotocols.html

Ricardo Pardini
quelle
Danke, ich werde den Artikel lesen und sehen, ob er Aufschluss darüber gibt, was los ist.
Proflux
Ricardo scheint richtig zu sein. Siehe die Diskussion unter winscp.net/forum/viewtopic.php?t=9360 . Ich