Ich gehe zu Hause häufig von der Schule in meine Box, aber normalerweise ist die Pipe kaputt, wenn ich den Unterricht wechsle und mein Computer ausfällt. Ssh blockiert jedoch einfach - Ctrl+ c, Ctrl+ zund Ctrl+ dhaben keine Auswirkung.
Es ist ärgerlich, mein Terminal neu starten zu müssen, und noch ärgerlicher, ein neues Bildschirmfenster zu schließen und neu zu erstellen.
Also meine Frage, gibt es eine einfache Möglichkeit, ssh richtig sterben zu lassen (dh wenn die Pipe "normal" ausfällt, wird sie mit einer Meldung über eine kaputte Pipe beendet)? Oder muss ich herausfinden, was die PID ist und sie manuell töten?
screen -x
: PAntworten:
Normale Schlüssel werden über die
ssh
Sitzung weitergeleitet, sodass keiner dieser Schlüssel funktioniert. Verwenden Sie stattdessen die Escape-Sequenzen. Um die aktuelle Sitzung zu töten Hit anschließend Enter ↵, ~, ..Mehr dieser Escape - Sequenzen können mit aufgeführt werden Enter ↵, ~, ?:
Sie können die Liste der Escape-Sequenzen schließen, indem Sie auf klicken enter.
Beachten Sie, dass Sie N verschachtelte Verbindungen adressieren können, indem Sie N- mal aufschlagen, da das Schlagen ~~das
ssh
Senden~
von veranlasst , anstatt es abzufangen . (Dies gilt nur für s, die direkt auf einen folgen .) Das heißt, dass eine Sitzung mit einer Tiefe von 5 Ebenen beendet wird und die anderen 4 Ebenen intakt bleiben.ssh
~ ~enterenter~~~~~.ssh
quelle
~
sich eine Taste inaktiv befindet , lautet die TastenfolgeEnter
~
Space
.
.EscapeChar ~
in auskommentieren müssen/etc/ssh/ssh_config
(oder~/.ssh/ssh_config
wenn Sie es vorziehen).Enter
~
~
.
Da über Ihre SSH-Sitzung~
~
ein Literal gesendet~
wird, wird es in der zweiten SSH-Sitzung als einzelne Tilde empfangen und.
als Teil des Escape interpretiert . Verwenden Sie zum Senden an die 5. verschachtelte SSH-Sitzung einfach 5 Tilden in Ihrer Escape-Sequenz.Möglicherweise möchten Sie auch Keep-Alives auf Anwendungsebene für SSH einrichten, um zu verhindern , dass SSH bei Verbindungsproblemen einfriert. Meine
~/.ssh/config
enthält Folgendes:Dadurch sendet der ssh-Client alle 15 Sekunden Keep-Alives auf Anwendungsebene. Wenn drei von ihnen nacheinander fehlschlagen (Standardeinstellung von
ServerAliveCountMax
), betrachtet der Client die Verbindung als hängengeblieben und schließt sie.Im Gegensatz zur anderen Option
TCPKeepAlive
wird dies im verschlüsselten Kanal geprüft und ist nicht fälschbar.Es wird angemerkt, dass diese Keep-Alives auch dazu beitragen, lange inaktive Verbindungen aufrechtzuerhalten , dh Sie daran zu hindern, halbgeschlossene TCP-Sitzungen stundenlang unberührt zu lassen.
Ich empfehle dringend, diese Funktion zu aktivieren, wenn Sie regelmäßig darauf stoßen, aber Sie sollten auch über das geringfügige Sicherheitsrisiko informiert sein, das dadurch entstehen kann. Ein bekannter Klartextangriff wird möglicherweise einfacher, wenn der Angreifer das Intervall und den Inhalt einer inaktiven Verbindung kennt. Dies könnte der Grund sein, warum es nicht standardmäßig aktiviert ist.
quelle
%)
ServerAliveInterval
auf 1 zu setzen, damit eine unterbrochene Verbindung sofort erkannt wird?Host
Leitung. "Moderne Verschlüsselungsverfahren wie Advanced Encryption Standard sind derzeit nicht anfällig für bekannte Klartextangriffe." (von dem Link, den Sie hinzugefügt haben) ...Wie in der Antwort von Geekosaurier vermerkt,
~.
wird die Verbindung durch die Escape-Sequenz beendet.Die vollständige Liste der Escape-Sequenzen und ihrer Funktionen kann angezeigt werden, indem Sie Folgendes eingeben
~?
:quelle