[Gelöst] Mux_client_request_session: read from master failed: connection reset by peer

Melden

Hier ist ein ausführliches Tutorial zur Behebung des SSH-Fehlers Mux_client_request_session: read from master failed: connection reset by peer.


Dieser Fehler tritt in der Regel auf, wenn Sie das SSH-Multiplexing (ControlMaster) verwenden. Dabei werden mehrere SSH-Sitzungen über eine einzige Netzwerkverbindung gebündelt. Wenn die Master-Verbindung (die erste Verbindung) unerwartet abbricht oder vom Server getrennt wird, können die nachfolgenden "Client"-Sitzungen nicht mehr auf den Socket zugreifen.

Hier sind die effektivsten Lösungen, um das Problem zu beheben.

Ursache des Problems

Die Fehlermeldung bedeutet, dass der Client versucht hat, eine neue Sitzung über einen bestehenden Master-Socket zu öffnen, dieser Master-Prozess aber nicht mehr reagiert oder die Verbindung zum Server verloren hat. Dies passiert oft durch:

  • Instabile Netzwerkverbindungen.
  • Timeout-Einstellungen am Server.
  • Manuelles Beenden des Master-Prozesses.

Lösung 1: Bestehende Sockets bereinigen

Oft verbleibt eine verwaiste Socket-Datei in Ihrem System, die den Fehler verursacht. Der schnellste Weg ist das Löschen dieser Dateien.

  1. Suchen Sie Ihr Socket-Verzeichnis (oft unter ~/.ssh/sockets/ oder direkt in ~/.ssh/).

  2. Löschen Sie die betroffenen Sockets:

    rm ~/.ssh/sockets/*

    (Hinweis: Der Pfad hängt von Ihrer Konfiguration in der Datei ~/.ssh/config ab.)

  3. Beenden Sie alle hängenden SSH-Prozesse:

    pkill ssh

Lösung 2: Die SSH-Konfiguration anpassen (~/.ssh/config)

Um das Problem dauerhaft zu lösen, sollten Sie Ihre lokale SSH-Konfigurationsdatei optimieren. Öffnen Sie die Datei:

nano ~/.ssh/config

Stellen Sie sicher, dass die folgenden Parameter korrekt gesetzt sind:

A. ControlPersist hinzufügen

Fügen Sie ControlPersist hinzu, damit der Master-Prozess im Hintergrund aktiv bleibt, auch wenn keine aktive Sitzung mehr offen ist. Das verhindert ständige Neuverbindungen.

Host *
    ControlMaster auto
    ControlPath ~/.ssh/sockets/%r@%h:%p
    ControlPersist 10m

B. Keepalive-Signale aktivieren

Oft trennt der Server die Verbindung bei Inaktivität. Mit Keepalive-Signalen verhindern Sie dies:

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3
  • ServerAliveInterval 60: Sendet alle 60 Sekunden ein Signal an den Server.
  • ServerAliveCountMax 3: Trennt die Verbindung erst nach 3 gescheiterten Versuchen.

Lösung 3: Multiplexing vorübergehend deaktivieren

Wenn Sie keine extrem hohe Anzahl an SSH-Verbindungen gleichzeitig benötigen, ist die einfachste Lösung, das Multiplexing für den problematischen Host zu deaktivieren.

Ändern Sie den Eintrag in der ~/.ssh/config:

Host mein-server
    ControlMaster no

Dadurch wird für jede Sitzung eine eigene, unabhängige TCP-Verbindung aufgebaut. Der Fehler Mux_client_request_session kann dann physikalisch nicht mehr auftreten.


Lösung 4: Server-seitige Einstellungen prüfen (Optional)

Falls Sie Zugriff auf den Server haben, prüfen Sie die Datei /etc/ssh/sshd_config. Manchmal ist die maximale Anzahl an erlaubten Sitzungen pro Verbindung zu niedrig eingestellt.

Suchen Sie nach:

MaxSessions 10

Erhöhen Sie diesen Wert gegebenenfalls und starten Sie den SSH-Dienst auf dem Server neu:

sudo systemctl restart ssh

Zusammenfassung

  1. Soforthilfe: Löschen Sie die Socket-Dateien in ~/.ssh/.
  2. Prävention: Nutzen Sie ControlPersist und ServerAliveInterval in Ihrer Konfiguration.
  3. Alternative: Schalten Sie ControlMaster aus, wenn die Netzwerkverbindung zu instabil für Multiplexing ist.

Mit diesen Schritten sollte die Fehlermeldung der Vergangenheit angehören.

0