SSH (Secure Shell) ist das Ende-zu-Ende-verschlüsselte Netzwerksystem, mit dem Benutzer remote vom Client auf den Server oder das System zugreifen können. Aufgrund seines asymmetrischen Kryptografie-Sicherheitssystems ist der Zugriff auf den Server selbst von einem unsicheren Client-Netzwerk ziemlich sicher. Aber manchmal kann der SSH-Fernzugriff aufgrund von Inaktivität oder einem schlechten Netzwerksignal unterbrochen werden. Was auch immer der Grund ist, als Linux-Administrator ist es eine wichtige Aufgabe, SSH-Sitzungen und -Prozesse nach dem Trennen 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 Netzwerk-Ports oder sogar nicht als Root-Benutzer bei Ihrem System angemeldet können Sie auch von der SSH-Fernverwaltung trennen. In diesem Beitrag werden wir die am häufigsten gestellte Frage zu SSH diskutieren. So halten Sie SSH-Sitzungen und -Prozesse am Laufen, nachdem die Verbindung getrennt wurde.
1. Führen Sie weiterhin SSH-Sitzungen mit dem Bildschirm
Befehl
Das Bildschirm
Befehl ist der am häufigsten verwendete und nützlichste Befehl für die SSH-Administration. Das Bildschirm
-Befehl kann Hostnamenprobleme sowohl für IPv4- als auch für IPv6-Adressen lösen. Mit Root-Funktionalitäten Bildschirm
Befehl kann eine Sitzung vom Client-Ende zum Server-Ende abmelden oder schließen. Wenn Sie ein Neuling bei Linux SSH sind, finden Sie hier einige CLIs, die Ihnen beim Installieren und Auffinden von Handbüchern von Bildschirm
Befehl.
Für Ubuntu:
$ sudo apt-Installationsbildschirm
Für OpenSUSE:
$ sudo zypper Installationsbildschirm
Für Arch-Linux:
$ sudo pacman -S-Bildschirm
Für Red Hat Enterprise Linux:
$ sudo yum Installationsbildschirm
Nachdem Sie die Installation abgeschlossen haben, beginnen Sie mit der Überwachung Ihres Systemstartbildschirms.
$ screen $ screen --help
Sobald Sie den Zugriff haben, SSH in den Server, möchten Sie aus der Ferne zugreifen. Wenn Sie von Ihrer Station aus eine lange Nachtarbeit planen, aber Ihren SSH-Client nicht herunterfahren möchten, können Sie die Bildschirm
Befehl. Dies kann Ihre Bildschirmsitzung trennen, aber keine Sorge, die von Ihnen eingeleiteten Aufgaben werden abgeschlossen.
Um Ihren Bildschirm zu trennen, drücken Sie Strg-A
und dann Strg-D
von deiner Tastatur. Sie können sich jederzeit einloggen, um den Arbeitsfortschritt von Ihrem Terminal aus zu verfolgen. Verwenden Sie die folgende CLI ., um sich mit der Sitzung erneut zu verbinden oder eine Verbindung mit der bestehenden herzustellen.
$ Bildschirm -r Bildschirm -D -r
2. Führen Sie weiterhin SSH-Sitzungen mit dem tmux
Werkzeug
Der tmux- oder Terminal-Multiplexer ist ein sehr beliebtes und nützliches Werkzeug für Programmierer und Systemadministratoren, mit dem Benutzer zwischen Programmen im selben Terminal wechseln können. Damit SSH-Sitzungen im Hintergrund laufen, tmux
kann eine sehr schnelle lösung sein. Es kann Anwendungen trennen und wieder anhängen, bei denen die Prozesse im Hintergrund ausgeführt werden. 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 installiere tmux
Für Ubuntu:
$ sudo apt-get install tmux
Für OpenSUSE:
$ sudo zypper installieren tmux
Nach der Installation tmux
, starte das tmux-Sitzung
mit Terminalbefehlen. Die Installation dauert nicht lange. Sobald Sie die Installation abgeschlossen haben, können Sie jetzt loslegen tmux
. Anfangen tmux
, 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, können Sie in diesem Fall Schwierigkeiten haben, zwischen ihnen zu wechseln tmux
zu tmux
. Hier sind die Befehlszeilen, um von einem Formular zum anderen zu wechseln.
$ tmux anhängen $ tmux anhängen $ tmux anhängen -t 2
Um alle zu überprüfen tmux
Bildschirm den tmux verwenden aufführen
Befehl.
$ tmux ls
3. Führen Sie weiterhin SSH-Sitzungen mit dem byobu
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-Software und kann zusammen mit den tmux
oder der Bildschirm
Werkzeug. Sie können den aktuellen Status, Benachrichtigungen und Nachrichten mit der byobu
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 überprü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 auch nach dem Trennen der Verbindung im Hintergrund laufen.
$ byobu-aktivieren
Hier werden die Installationsprozesse mit CLI . erklärt.
Für Ubuntu:
$ sudo apt install byobu
Für OpenSUSE:
$ sudo zypper addrepo https://download.openuse.org/repositories/utilities/openSUSE_Leap_42.3/Dienstprogramme.repo
$ sudo zypper aktualisieren $ 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 loszulegen byobu
, Geben Sie einfach byobu in das Terminal ein und drücken Sie die Eingabetaste.
$ byobu
Wenn Sie jetzt die verwenden tmux
oder der Bildschirm
, Sie können zwischen jedem von ihnen für die Zusammenarbeit im Backend auswählen.
$ byobu-select-backend
Jetzt können Sie Ihre SSH-Sitzungen verwalten und im Hintergrund laufen lassen, nachdem die Verbindung getrennt wurde, verwenden Sie die Funktionstasten der Systemtastatur. Um mit SSH zusammen mit byobu zu beginnen, drücke STRG+UMSCHALT+F2
von Ihrer Tastatur aus, um die SSH-Umgebung zu aktivieren. Um Ihre SSH-Sitzungen vorwärts und rückwärts zu verschieben, können Sie verwenden ALT+AUF
und ALT+AB
.
Um Ihre SSH-Sitzungen zu trennen, drücken Sie F6
von der Tastatur. Wenn Sie nun die Sitzung trennen, aber nicht trennen möchten, dann geht es los. Um SSH-Sitzungen zu trennen und trotzdem verbunden zu werden, drücken Sie UMSCHALT+F6
. Hier ist ein weiterer zusätzlicher Tastaturbefehl für Sie. Um nur die Bildschirmsitzung aktiv zu halten und alle anderen Fenster zu schließen, drücken Sie ALT+F6
.
4. Führen Sie weiterhin SSH-Sitzungen mit dem nohup
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, auch wenn sie getrennt wurden. Das nohup
Befehl weist das System an, alle Prozesse im Hintergrund auszuführen, indem das Auflegen des Signals vermieden wird (SIGHUP).
Um das zu überprüfen nohup
Handbücher und Optionen von Ihrem Linux-Terminal aus, geben Sie den folgenden Befehl in das Terminal ein und drücken Sie die Eingabetaste.
$ nohup-Optionen
Um die aktuell aktiven Joblisten zu überprüfen, verwenden Sie die -l
Befehl von Ihrem Terminal.
$ Jobs -l
Um einen Verbindungsverlust zu vermeiden und Ihre Sitzungen nach dem Trennen aufrechtzuerhalten, verwenden Sie jetzt für die SSH-Verbindung die nohup-Befehlszeilen, die Ihrem Job folgen. Sie können die Ausgabeliste Ihrer Jobs auch in einer Textdatei abrufen, indem Sie den Befehl cat neben dem Befehl nohup verwenden.
$ nohup ./Hallo.sh $ cat nohup.aus
Um einen Prozess im Hintergrund auszuführen, können Sie den &
Symbol kurz nach dem nohup
Befehl. Zum Beispiel, wenn ich Ping für WordPress-408970-1286763 testen möchte.cloudwaysapps.com im Hintergrund, die Befehlszeile sieht aus wie die folgende Zeile unten. Und wenn Sie der Meinung sind, dass Ihre Arbeit erledigt ist, verwenden Sie die pgrep
Befehl.
$ nohup ping ubuntupit.com & $ pgrep - ein Ping
5. Führen Sie weiterhin SSH-Sitzungen mit dem verleugnen
Befehl
Wenn Sie nicht über die Root-Rechte des Systems verfügen, wird dies vielleicht Ihr Problem lösen. Das verleugnen
Befehl kann jede Aufgabe aus Ihrem laufenden Systemprotokoll entfernen. So kann es einen laufenden Prozess verbergen, um alle Fehler beim automatischen Abmelden oder das Auflegen des Signals (SIGHUP) zu vermeiden. Sie können den diswon process management-Befehl tatsächlich verwenden, um Ihre SSH-Sitzungen am Laufen zu halten, indem Sie Ihre Aufgabe verbergen.
Um Ihre Aufgabe aus dem Task-Manager zu entfernen oder auszublenden, verwenden Sie den Befehl diswon im Terminal.
$ verleugnen
Um den aktuellen Status der Aufgabe zu überprüfen, verwenden Sie den aktuellen Shell-Befehl.
$ aktuelle Shell
Sie können auch eine Liste von Aufgaben mit einem einzeiligen Terminalbefehl festlegen.
$ Jobs ablehnen1 $ Jobs ablehnen1 Jobs2… jobsn
Und um die Aufgabenliste zu überprüfen, verwenden Sie die -l
Befehl.
$ Jobs -l
Um alle aktuellen Jobs aus dem Fenster zu entfernen, geben Sie die -ein
Syntax nach dem Disown-Befehl.
$ verleugnen -a
Um nur einen oder den laufenden Job aus dem Fenster zu entfernen, verwenden Sie die -r
Syntax nach dem diswon-Befehl.
$ verleugnen -r
Verwenden Sie nun für SSH, um einen Job im Hintergrund auszuführen, nachdem die Sitzung verbunden ist, die -ha
Syntax. Dieser Prozess kann Ihre SSH-Sitzungen auch nach dem Trennen am Laufen halten.
$ disown -h jobID $ disown -h %2
Fixieren der Auszeit
Fehler von SSH in RHEL
Wenn Sie unter Red Hat Enterprise Linux (RHEL) mit SSH verbunden sind, kann es zu einem häufigen Zeitüberschreitungsproblem kommen und Ihre Verbindung geht verloren. Dieses Problem tritt aufgrund der ungültigen Antwortzeit entweder vom Client-Ende oder vom Host-Ende auf. In Ihrem Red Hat-Root-Verzeichnis müssen Sie die sshd_config.TXT
Datei, um diese Zeitüberschreitungsprobleme zu lösen. Sobald Sie fertig sind, können Sie Ihre SSH-Verbindung auch nach dem Trennen wiederherstellen.
Dort drinnen sshd_config.TXT
, Datei finden Sie zwei Optionen namens ClientAliveInterval
und ClientAliveCountMax
, Sie müssen diese Protokolldateien bearbeiten, um die Server-zu-Client-Antwortzeit zu maximieren. Das Timeout-Intervall wird berechnet, indem die Werte von ClientAliveInterval und ClientAliveCountMax multipliziert werden.
Sie müssen lediglich die Zeitdauer dieser beiden Werte entsprechend Ihrem System und der Antwortdauer des Netzwerks bearbeiten. Lassen Sie die Zeit 10 Minuten für das Ende des Client-Intervalls und das 5-fache für die Anzahl der Clients maximieren, dann Ihre Textregistrierung innerhalb der sshd_config.TXT
Datei wird wie unten aussehen. Und dann SSH neu starten.
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 Kunden zufrieden zu stellen und die Aufgabe zu erfüllen. Verbindungsabbrüche und häufige Sitzungsverluste sind sehr ärgerlich und lästig. In diesem Beitrag haben wir daher versucht, die Gründe für die Trennung von SSH-Sitzungen zu diskutieren und zu veranschaulichen, und auch alle möglichen Methoden beschrieben, wie Sie SSH-Sitzungen nach der Trennung am Laufen halten können.
Wenn Sie schon einmal die mühsame Trennung von SSH-Sitzungen durchgemacht haben und wissen, wie ärgerlich das sein kann, teilen Sie uns bitte Ihre Erfahrungen mit. Und kommentiere auch, wenn du etwas hinzuzufügen oder etwas zu diesem Beitrag im Kommentarbereich zu fragen. Vergiss nicht, diesen Beitrag mit deinen Freunden in den sozialen Medien zu teilen.