GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So halten Sie Remote-SSH-Sitzungen nach der Trennung am Laufen

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.


Linux
  1. 5 Möglichkeiten, um Remote-SSH-Sitzungen und -Prozesse nach der Trennung am Laufen zu halten

  2. Ssh – Prozesse weiterlaufen lassen, nachdem die Ssh-Sitzung getrennt wurde?

  3. Ssh – Wie führe ich ein Skript sofort nach der Verbindung über SSH aus?

  4. So stellen Sie eine Shell nach einer Verbindungsunterbrechung wieder her

  5. qemu läuft in ssh:Wie beendet man?

Vollständiges Tutorial zum Einrichten von SSH-Schlüsseln und SSH-Verbindungen

So führen Sie SSH in ein bestimmtes Verzeichnis unter Linux aus

So konfigurieren Sie die X11-Weiterleitung mit SSH unter Linux

So führen Sie eine Remote-Linux-Sicherung mit SSH durch

So verwenden Sie SSH, um eine Verbindung zu einem Remote-Server herzustellen

Gewusst wie:FreeBSD-Fernverwaltung