SSH (Secure Shell) ist das Ende-zu-Ende-verschlüsselte Netzwerksystem, das Benutzern den Fernzugriff vom Client auf den Server oder das System ermöglicht. Aufgrund seines asymmetrischen Kryptografie-Sicherheitssystems ist es ziemlich sicher, auch von einem unsicheren Client-Netzwerk aus auf den Server zuzugreifen. Aber manchmal kann der SSH-Fernzugriff aufgrund von Inaktivität oder schlechtem Netzwerksignal getrennt werden. Was auch immer der Grund ist, als Linux-Administrator ist es eine wichtige Aufgabe, SSH-Sitzungen und -Prozesse nach der Trennung am Laufen zu halten.
Gründe, warum SSH-Sitzungen getrennt werden
Kurz gesagt, ein SSH-Tunnel-Proxy-Fehler, ein Netzwerk-Timeout, die Verwendung des falschen Netzwerkports oder sogar die Nichtanmeldung als Root-Benutzer in Ihrem System können dazu führen, dass Sie von der SSH-Remoteverwaltung getrennt werden. In diesem Beitrag werden wir die am häufigsten gestellte Frage zu SSH diskutieren; wie man SSH-Sitzungen und -Prozesse am Laufen hält, nachdem die Verbindung getrennt wurde.
1. SSH-Sitzungen über den screen
weiter ausführen Befehl
Der screen
Der Befehl ist der am häufigsten verwendete und nützlichste Befehl für die SSH-Administration. Der screen
Der Befehl kann Hostnamenprobleme sowohl für IPv4- als auch für IPv6-Adressen lösen. Bei Root-Funktionalitäten der screen
Der Befehl kann sich vom Client-Ende zum Server-Ende abmelden oder eine Sitzung verwerfen. Wenn Sie ein absoluter Neuling bei Linux SSH sind, finden Sie hier einige CLI, die Ihnen helfen können, Handbücher des screen
zu installieren und zu finden Befehl.
Für Ubuntu:
$ sudo apt install screen
Für OpenSUSE:
$ sudo zypper install screen
Für Arch Linux:
- -$ sudo pacman -S screen
Für Red Hat Enterprise Linux:
$ sudo yum install screen
Beginnen Sie nach Abschluss der Installation damit, den Startbildschirm Ihres Systems zu überwachen.
$ screen $ screen --help
Sobald Sie den Zugriff haben, verbinden Sie sich per SSH mit dem Server, Sie möchten Remote-Zugriff erhalten. Wenn Sie eine lange Nachtarbeit von Ihrer Station aus planen, aber Ihren SSH-Client nicht herunterfahren möchten, können Sie den screen
verwenden Befehl. Dies kann Ihre Bildschirmsitzung trennen, aber keine Sorge, die von Ihnen initiierten Aufgaben werden abgeschlossen.
Um Ihren Bildschirm abzutrennen, drücken Sie Ctrl-A
und dann Ctrl-D
von Ihrer Tastatur. Sie können sich jederzeit von Ihrem Terminal aus anmelden, um den Arbeitsfortschritt zu überwachen. Verwenden Sie die folgende CLI, um sich mit der Sitzung erneut zu verbinden oder eine Verbindung mit der vorhandenen herzustellen.
$ screen -r screen -D -r
2. Führen Sie weiterhin SSH-Sitzungen mit tmux
aus Werkzeug
Der tmux oder Terminal-Multiplexer ist ein sehr beliebtes und nützliches Tool für Programmierer und Systemadministratoren, das es Benutzern ermöglicht, im selben Terminal zwischen Programmen zu wechseln. Um SSH-Sitzungen im Hintergrund laufen zu lassen, tmux
kann eine sehr schnelle Lösung sein. Es kann Anwendungen trennen und wieder anhängen, wobei die Prozesse im Hintergrund weiterlaufen. Hier ist die Installationsanleitung von tmux
für Linux-Distributionen.
Für Arch Linux:
$ sudo pacman -S tmux
Für Red Hat Enterprise Linux:
$ sudo yum install tmux
Für Ubuntu:
$ sudo apt-get install tmux
Für OpenSUSE:
$ sudo zypper install tmux
Nach der Installation von tmux
, starten Sie die tmux session
mit Terminalbefehlen. Die Installation dauert nicht lange. Sobald Sie die Installation abgeschlossen haben, können Sie jetzt mit tmux
loslegen . Um tmux
zu starten , geben Sie einfach tmux in das Terminal ein.
$ tmux
Wenn Sie mehr als einen Terminal-Multiplexer ausführen müssen, um alle SSH-Sitzungen im Hintergrund laufen zu lassen, kann es in diesem Fall zu Schwierigkeiten beim Umschalten zwischen tmux
kommen zu tmux
. Hier sind die Befehlszeilen, um von einer zur anderen zu wechseln.
$ tmux detach $ tmux attach $ tmux attach -t 2
Um alle tmux
zu überprüfen Bildschirm verwenden Sie die tmux list
Befehl.
$ tmux ls
3. Führen Sie weiterhin SSH-Sitzungen mit byobu
aus Werkzeug
Das Tool byobu wird hauptsächlich für die Remote-SSH-Verwaltung und die Bildschirmüberwachung unter Linux verwendet. Es ist eine Open-Source-Source-Software und kann neben dem tmux
verwendet werden oder den screen
Werkzeug. Mit dem byobu
können Sie den aktuellen Status, Benachrichtigungen und Nachrichten einsehen Werkzeug. Obwohl die byobu
wird standardmäßig mit Ubuntu installiert. Aber wenn dies nicht der Fall ist, können Sie es auf Ihrem Linux-Computer installieren. Um zu prüfen, ob byobu
auf Ihrem System installiert ist oder nicht, indem Sie die anderen Versionen von byobu überprüfen.
$ byobu --version
Aktivieren Sie dann byobu, damit Ihre SSH-Sitzungen im Hintergrund weiterlaufen, selbst wenn die Verbindung getrennt wird.
$ byobu-enable
Hier werden die Installationsprozesse mit CLI erklärt.
Für Ubuntu:
$ sudo apt install byobu
Für OpenSUSE:
$ sudo zypper addrepo https://download.opensuse.org/repositories/utilities/openSUSE_Leap_42.3/utilities.repo
$ sudo zypper refresh $ sudo zypper install byobu
Für Arch Linux:
$ yaourt -S byobu $ packer -S byobu
Für Red Hat Enterprise Linux:
$ sudo yum install byobu
Für Fedora:
$ sudo dnf install byobu
Um mit byobu
zu beginnen , geben Sie einfach byobu in das Terminal ein und drücken Sie die Eingabetaste.
$ byobu
Wenn Sie jetzt den tmux
verwenden oder den screen
, können Sie für die Back-End-Zusammenarbeit zwischen ihnen wählen und auswählen.
$ byobu-select-backend
Jetzt können Sie Ihre SSH-Sitzungen verwalten und im Hintergrund weiterlaufen lassen, nachdem die Verbindung getrennt wurde, indem Sie die Funktionstasten der Systemtastatur verwenden. Um mit SSH neben byobu zu beginnen, drücken Sie CTRL+SHIFT+F2
von Ihrer Tastatur, um die SSH-Umgebung zu aktivieren. Um Ihre SSH-Sitzungen vorwärts und rückwärts zu verschieben, können Sie ALT+UP
verwenden und ALT+DOWN
.
Um Ihre SSH-Sitzungen zu trennen, drücken Sie F6
von der Tastatur. Wenn Sie nun nach einer Trennung suchen, die Sitzung jedoch nicht trennen möchten, sind Sie hier richtig. Um SSH-Sitzungen zu trennen und trotzdem verbunden zu bleiben, drücken Sie SHIFT+F6
. Hier ist ein weiterer zusätzlicher Tastaturbefehl für Sie. Um nur die aktuelle Bildschirmsitzung aktiv zu halten und alle anderen Fenster zu schließen, drücken Sie ALT+F6
.
4. Führen Sie weiterhin SSH-Sitzungen mit nohup
aus Befehl
Das nohup
oder der Befehl „no hangup“ ist ein sehr nützliches alternatives Tool für den Bildschirm oder den tmux. Es ermöglicht Benutzern auch, die SSH-Sitzungen aufrechtzuerhalten, selbst nachdem sie getrennt wurden. Das nohup
Der Befehl weist das System an, alle Prozesse im Hintergrund auszuführen, indem das Auflegen des Signals (SIGHUP) vermieden wird.
Um den nohup
zu überprüfen Handbücher und Optionen von Ihrem Linux-Terminal, geben Sie den folgenden Befehl in das Terminal ein und drücken Sie die Eingabetaste.
$ nohup options
Um die derzeit aktiven Joblisten zu überprüfen, verwenden Sie den -l
Befehl von Ihrem Terminal.
$ jobs -l
Verwenden Sie jetzt für die SSH-Verbindung die nohup-Befehlszeilen nach Ihrem Job, um einen Verbindungsverlust zu vermeiden und Ihre Sitzungen nach der Trennung weiterlaufen zu lassen. Sie können die Ausgabeliste Ihrer Jobs auch in einer Textdatei erhalten, indem Sie den cat-Befehl zusammen mit dem nohup-Befehl verwenden.
$ nohup ./hello.sh $ cat nohup.out
Um einen Prozess im Hintergrund auszuführen, können Sie den &
verwenden Symbol direkt nach dem nohup
Befehl. Wenn ich zum Beispiel Ping für wordpress-408970-1286763.cloudwaysapps.com im Hintergrund testen möchte, sieht die Befehlszeile genauso aus wie in der folgenden Zeile unten. Und wenn Sie denken, dass Ihre Arbeit erledigt ist, verwenden Sie pgrep
, um das Ergebnis zu sehen Befehl.
$ nohup ping www.ubuntupit.com & $ pgrep -a ping
5. Führen Sie SSH-Sitzungen mit disown
weiter aus Befehl
Wenn Sie nicht über die System-Root-Rechte verfügen, wird dieser vielleicht Ihr Problem lösen. Die disown
Befehl kann jede Aufgabe aus Ihrem laufenden Systemprotokoll aus der Liste entfernen. Somit kann ein laufender Prozess ausgeblendet werden, um alle Fehler beim automatischen Abmelden oder das Auflegen des Signals (SIGHUP) zu vermeiden. Sie können den Prozessverwaltungsbefehl diswon tatsächlich verwenden, um Ihre SSH-Sitzungen am Laufen zu halten, indem Sie Ihre Aufgabe verbergen.
Verwenden Sie den diswon-Befehl im Terminal, um Ihre Aufgabe aus dem Task-Manager zu entfernen oder zu verbergen.
$ disown <task>
Verwenden Sie den aktuellen Shell-Befehl, um den aktuellen Status der Aufgabe zu überprüfen.
$ current shell
Sie können auch eine Aufgabenliste mit einem einzeiligen Terminalbefehl erstellen.
$ disown jobs1 $ disown jobs1 jobs2 ... jobsn
Und um die Aufgabenliste zu überprüfen, verwenden Sie den -l
Befehl.
$ jobs -l
Um alle aktuellen Jobs aus dem Fenster zu entfernen, geben Sie -a
ein Syntax, die dem Disown-Befehl folgt.
$ disown -a
Um nur einen oder den laufenden Job aus dem Fenster zu entfernen, verwenden Sie -r
Syntax nach dem Befehl diswon.
$ disown -r
Verwenden Sie nun für SSH, um einen Job im Hintergrund auszuführen, nachdem die Sitzung verbunden ist, den -h
Syntax. Dieser Prozess kann Ihre SSH-Sitzungen auch nach der Trennung am Laufen halten.
$ disown -h jobID $ disown -h %2
Behebung des timeout
Fehler von SSH in RHEL
Wenn Sie unter Red Hat Enterprise Linux (RHEL) mit SSH verbunden sind, tritt möglicherweise häufig ein Zeitüberschreitungsproblem auf und Ihre Verbindung wird unterbrochen. Dieses Problem tritt aufgrund der ungültigen Antwortzeit entweder auf der Clientseite oder der Hostseite auf. In Ihrem Red Hat Root-Verzeichnis müssen Sie die sshd_config.txt
finden und bearbeiten Datei, um dieses Timeout-Problem zu lösen. Sobald Sie fertig sind, können Sie Ihre SSH-Verbindung wiederherstellen, selbst nachdem die Verbindung getrennt wurde.
Dort in der sshd_config.txt
, finden Sie zwei Optionen namens ClientAliveInterval
und ClientAliveCountMax
, müssen Sie diese Protokolldateien bearbeiten, um die Reaktionszeit vom Server zum Client zu maximieren. Das Timeout-Intervall wird berechnet, indem die Werte von ClientAliveInterval und ClientAliveCountMax multipliziert werden.
Alles, was Sie brauchen, ist, die Zeitdauer dieser beiden Werte entsprechend Ihrer System- und Netzwerkantwortdauer zu bearbeiten. Lassen Sie die Zeit 10 Minuten für das Ende des Client-Intervalls und 5-mal für die Client-Zählung maximieren, dann Ihre Textregistrierung in der sshd_config.txt
Datei wird wie unten sein. Starten Sie dann SSH neu.
ClientAliveInterval 10m ClientAliveCountMax 5
Abschließende Gedanken
Für einen Systemadministrator ist es eine entscheidende Aufgabe, SSH-Sitzungen und -Prozesse am Laufen zu halten, um den Client zufriedenzustellen und die Aufgabe zu erfüllen. Es ist sehr ärgerlich und lästig, die Verbindung zu trennen und häufige Sitzungen zu verlieren. In diesem Beitrag haben wir also versucht, die Gründe zu diskutieren und zu veranschaulichen, warum SSH-Sitzungen getrennt werden, und auch alle möglichen Methoden beschrieben, wie SSH-Sitzungen nach der Trennung am Laufen gehalten werden können.
Wenn Sie jemals den Ärger der SSH-Sitzungstrennung durchgemacht haben und wissen, wie lästig dies sein kann, teilen Sie uns bitte Ihre Erfahrungen mit. Und kommentieren Sie auch, wenn Sie etwas hinzuzufügen oder Fragen zu diesem Beitrag im Kommentarbereich haben. Vergessen Sie nicht, diesen Beitrag mit Ihren Freunden in den sozialen Medien zu teilen.