Möglicherweise schließt Ihr Server Verbindungen, die zu lange inaktiv sind. Sie können entweder Ihren Client ( ServerAliveInterval) oder Ihren Server ( ClientAliveInterval) aktualisieren
ServerAliveInterval
Sets a timeout interval in seconds after which if no data has
been received from the server, ssh(1) 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.
So aktualisieren Sie Ihren Server (und starten ihn neu sshd)
echo "ClientAliveInterval 60" | sudo tee -a /etc/ssh/sshd_config
Auf ~/.ssh/configmeinem Mac gibt es keine . Muss ich sie dort erstellen oder ist sie woanders?
AGamePlayer
5
@AwQiruiGuo Ja, Sie sollten zuerst das Verzeichnis ( ~/.ssh) erstellen . Alsomkdir -p ~/.ssh; chmod 700 ~/.ssh; touch ~/.ssh/config
Gert
6
Eine alternative Lösung wäre moshdie mobile Shell . Im Gegensatz zu ssh verbindet es sich über UDP und unterstützt Roaming. Sie können Ihre Sitzung zu Hause beginnen, Ihren Laptop anhalten, zur Arbeit / zu Freunden / überall dort bringen, wo Sie über Internet verfügen, Ihren Laptop entsperren und weiterarbeiten, als wäre nichts passiert. Dies ist besonders nützlich, wenn Sie eine schlechte Internetverbindung haben: Es wird sofort eine Rückmeldung angezeigt, wenn Ihre Tastatureingaben den Server nicht erreichen, und es wird kontinuierlich versucht, die Verbindung wiederherzustellen.
Installation und Einrichtung sind einfach: Es ist jetzt in allen aktuellen Linux-Distributionen (plus einigen Nicht-Linux-Distributionen) enthalten und koordiniert die Sitzungsinitialisierung und -authentifizierung über eine vorherige ssh-Verbindung. Wenn Sie in der Lage sind, eine Verbindung über ssh user@serverherzustellen, können Sie sehr wahrscheinlich eine Verbindung mit mosh herstellen, indem Sie einfach anrufen mosh user@server, wenn die mosh-Pakete auf beiden Seiten installiert sind.
Der Hauptgrund für Verbindungsfehler ist, dass Sie den Server über einen UDP-Port (Standardbereich: 60000-61000) erreichen müssen, damit mosh funktioniert. Befindet sich der Server also hinter einer Firewall, hat man meistens Pech, wenn man selbst keine Lücken finden kann ( Sicherheitsrisiken ).
Wenn Sie eine längere Verbindungsdauer wünschen, fügen Sie im Client Folgendes hinzu:
echo 'ServerAliveInterval 30' | sudo tee -a ~/.ssh/config
echo 'ServerAliveCountMax 1200' | sudo tee -a ~/.ssh/config
ServerAliveCountMaxStandardmäßig ist dies auf 3 eingestellt. Sobald der ServerAliveIntervalServer 3 kleine Datenpakete gesendet hat, wird er sich automatisch abmelden. Wenn Sie den Wert auf 1200 setzen, muss dieser Vorgang mindestens 1200 Mal ausgeführt werden. Kurz gesagt, Sie sollten mindestens 30 * 1200 Sekunden (10 Stunden) verbunden sein.
Ich hatte das gleiche Problem, aber es ist nicht wie erwartet. Wenn Sie feststellen, dass in demselben Netzwerk ein anderer Server nach derselben IP-Adresse sucht, tritt dasselbe Problem auf. Um dies zu beheben, müssen Sie überprüfen, ob es andere Server gibt, die dieselbe IP-Adresse verwenden. Dies kann mit dem arpBefehl erfolgen.
Ich verwende Debian. Hier ist ein Beispiel der Befehle, mit denen ich feststelle, ob ein anderer Server tatsächlich dieselbe IP-Adresse verwendet
Sie werden zwei Sätze von Mac-Adressen bemerken, die dieselbe IP-Adresse verwenden. Vermeiden Sie Konflikte, indem Sie eine andere IP-Adresse festlegen.
~/.ssh/config
meinem Mac gibt es keine . Muss ich sie dort erstellen oder ist sie woanders?~/.ssh
) erstellen . Alsomkdir -p ~/.ssh; chmod 700 ~/.ssh; touch ~/.ssh/config
Eine alternative Lösung wäre
mosh
die mobile Shell . Im Gegensatz zu ssh verbindet es sich über UDP und unterstützt Roaming. Sie können Ihre Sitzung zu Hause beginnen, Ihren Laptop anhalten, zur Arbeit / zu Freunden / überall dort bringen, wo Sie über Internet verfügen, Ihren Laptop entsperren und weiterarbeiten, als wäre nichts passiert. Dies ist besonders nützlich, wenn Sie eine schlechte Internetverbindung haben: Es wird sofort eine Rückmeldung angezeigt, wenn Ihre Tastatureingaben den Server nicht erreichen, und es wird kontinuierlich versucht, die Verbindung wiederherzustellen.Installation und Einrichtung sind einfach: Es ist jetzt in allen aktuellen Linux-Distributionen (plus einigen Nicht-Linux-Distributionen) enthalten und koordiniert die Sitzungsinitialisierung und -authentifizierung über eine vorherige ssh-Verbindung. Wenn Sie in der Lage sind, eine Verbindung über
ssh user@server
herzustellen, können Sie sehr wahrscheinlich eine Verbindung mit mosh herstellen, indem Sie einfach anrufenmosh user@server
, wenn die mosh-Pakete auf beiden Seiten installiert sind.Der Hauptgrund für Verbindungsfehler ist, dass Sie den Server über einen UDP-Port (Standardbereich: 60000-61000) erreichen müssen, damit mosh funktioniert. Befindet sich der Server also hinter einer Firewall, hat man meistens Pech, wenn man selbst keine Lücken finden kann ( Sicherheitsrisiken ).
quelle
Wenn Sie eine längere Verbindungsdauer wünschen, fügen Sie im Client Folgendes hinzu:
ServerAliveCountMax
Standardmäßig ist dies auf 3 eingestellt. Sobald derServerAliveInterval
Server 3 kleine Datenpakete gesendet hat, wird er sich automatisch abmelden. Wenn Sie den Wert auf 1200 setzen, muss dieser Vorgang mindestens 1200 Mal ausgeführt werden. Kurz gesagt, Sie sollten mindestens 30 * 1200 Sekunden (10 Stunden) verbunden sein.quelle
Dies bedeutet normalerweise, dass Ihre Netzwerkverbindung (TCP) zurückgesetzt wurde. ZB Ihr Internetprovider hat Sie wieder verbunden oder ähnliches.
quelle
Ich hatte das gleiche Problem, aber es ist nicht wie erwartet. Wenn Sie feststellen, dass in demselben Netzwerk ein anderer Server nach derselben IP-Adresse sucht, tritt dasselbe Problem auf. Um dies zu beheben, müssen Sie überprüfen, ob es andere Server gibt, die dieselbe IP-Adresse verwenden. Dies kann mit dem
arp
Befehl erfolgen.Ich verwende Debian. Hier ist ein Beispiel der Befehle, mit denen ich feststelle, ob ein anderer Server tatsächlich dieselbe IP-Adresse verwendet
Sie werden zwei Sätze von Mac-Adressen bemerken, die dieselbe IP-Adresse verwenden. Vermeiden Sie Konflikte, indem Sie eine andere IP-Adresse festlegen.
quelle
Eine weitere Ursache für die Meldung "Pipe defekt" ist, dass ein anderer Computer versucht, dieselbe IP-Adresse wie Ihr Host zu verwenden.
Ein einfacher Weg, um zu testen, ob jemand anderes diese IP verwendet:
Um herauszufinden, welche Computer sich in Ihrem Netzwerk befinden, können Sie diesen Unix- und Linux-Fragetitel verwenden: So finden Sie heraus, welche anderen Computer mit dem lokalen Netzwerk verbunden sind .
quelle