Die Meldung „write failed: broken pipe“ tritt häufig während einer aktiven SSH Sitzung auf. Dafür verantwortlich ist eine zu lange Antwortzeit vom Server, der ein Debian Linux Server oder auch genau so ein MAC OS X Rechner sein kann. Das Problem eines Sitzungsabbruches mit write failed: broken pipe ist bei uns in der Verwendung mit dem Tar-Befehl beim anfertigen eines Backups zu einem entfernten MAC OS X Servers aufgetreten. Wie Sie das Problem lösen erfahren Sie hier!

Warum „write failed broken pipe“?

Braucht der Server zu lange um eine Antwort zu senden wird die TCP Verbindung geschlossen und eine neue Anmeldung ist erforderlich. Wird die Verbindung während eines Datentransfers geschlossen, so kommt es zu dem Fehler write failed:broken pipe. Dieses Problem kann während eines tar oder rsync Kommandos auf allen Unix- und somit auch auf allen MAC OS X Systemen auftreten.

write failed broken pipe beheben

Linux System

  • cd /etc/ssh/ (in das SSH Verzeichnis wechseln)
  • vim sshd_config (sshd_config bearbeiten)

Fügen Sie folgende Zeilen in die sshd_config Datei hinzu

  • ServerAliveInterval 30
  • ServerAliveCountMax 120

Bei unserem Debian Linux 12 Core und einem Power Mac G4 haben ServerAlive… Einstellungen schon ausgereicht

Fungiert de Rechner als Client und Server so kann auf beiden Rechnern noch folgendes hinzugefügt werden.

  • ClientAliveInterval 30
  • ClientAliveInterval 120

Nun sollte das write failed Problem unter Linux nicht mehr passieren.

MAC OS X

Zur Sicherheit bearbeiten Sie gleich 2 config Dateien auf dem MAC. Die allgemeine SSH Config Datei und die SSH Config Datei des Users.

Hier liegen die beiden SSH Konfigurationsdateien

  • cd ~ (ins Homeverzeichnis des aktuellen Benutzers wechseln. Mit diesem Bentzer müssen wir uns später auch per SSH anmelden)
    cd .ssh
  • (und) cd /etc/

Ist dies Datei sshd_config nicht vorhanden legen Sie die Datei mit

  • touch sshd_config

neu an.

Bearbeiten Sie die Datei sshd_config nun mit

  • vim sshd_config

und fügen Sie folgende Zeilen ein:

  • Host *
    ServerAliveInterval 30
    ServerAliveCountMax 120

Nun sollte das write failed, broken pipe Problem unter Mac OSX nicht mehr vorkommen.

SSH Verbindung bricht immer noch ab?

Versuchen Sie folgende Einstellungen:

  • TCPKeepAlive yes
  • sudo sysctl -w net.inet.tcp.always_keepalive=9999 (Damit setzen wir die Lebensdauer von TCP Verbindungen höher. hat bei uns geholfen!)

Rootserver einrichten und Absichern

Versuchen Sie diese Lektüre wenn Sie Ihren eigenen Rootserver verwalten möchten. Für den Einstieg kann ich diese Lektüre empfehlen wenn Sie weiterhin auf IPv4 und niciht IPv6 setzen.

ServerAliveInterval

Sets a timeout interval in seconds after which if no data has been received from the server, ssh will send a message through the encrypted channel to request a response from the server. The default is 0, indicating that these messages will not be sent to the server. This option applies to protocol version 2 only.

ClientAliveInterval

Sets a timeout interval in seconds after which if no data has been received from the client, sshd(8) will send a message through the encrypted channel to request a response from the client. The default is 0, indicating that these messages will not be sent to the client. This option applies to protocol version 2 only.

Unverschlüsseltes SSH

Mit dem Schalter -Y können Sie eine unverschlüsselte SSH Sitzung aufbauen. Davon raten wir in den meisten Fällen ab, weil Daten dabei im Klartext übermittelt werden.