GNU/Linux >> Znalost Linux >  >> Linux

Jak udržet vzdálené relace SSH spuštěné po odpojení

SSH (Secure Shell) je šifrovaný síťový systém typu end-to-end, který uživatelům umožňuje vzdálený přístup z klienta na server nebo systém. Vzhledem k jeho asymetrickému kryptografickému bezpečnostnímu systému je do značné míry bezpečný a bezpečný přístup k serveru i z nebezpečné klientské sítě. Ale někdy kvůli nečinnosti nebo špatnému síťovému signálu může dojít k odpojení vzdáleného přístupu SSH. Ať už je důvod jakýkoli, jako správce Linuxu je životně důležitý úkol udržet relace a procesy SSH v chodu i po odpojení.

Důvody, proč se relace SSH odpojují

Stručně řečeno, chyba proxy tunelu SSH, časový limit sítě, použití nesprávného síťového portu nebo dokonce nepřihlášení do systému jako uživatel root vás také mohou odpojit od vzdálené správy SSH. V tomto příspěvku budeme diskutovat o nejčastějších otázkách týkajících se SSH; jak udržet relace a procesy SSH spuštěné po odpojení.

1. Pokračujte ve spouštění relací SSH pomocí screen Příkaza

screen příkaz je nejpoužívanějším a nejužitečnějším příkazem pro správu SSH. screen může vyřešit problémy s názvy hostitelů pro adresy IPv4 i IPv6. S funkcemi root, screen příkaz se může odhlásit nebo zrušit relaci z konce klienta na konec serveru. Pokud jste v Linuxu SSH úplným nováčkem, zde jsou některé CLI, které vám mohou pomoci nainstalovat a najít manuály na screen příkaz.

Pro Ubuntu:

$ sudo apt install screen

Pro OpenSUSE:

$ sudo zypper install screen

Pro Arch Linux:

- -
$ sudo pacman -S screen

Pro Red Hat Enterprise Linux:

$ sudo yum install screen

Po dokončení instalace začněte sledovat úvodní obrazovku systému.

$ screen
$ screen --help

Jakmile budete mít přístup, SSH na server, chcete získat přístup vzdáleně. Pokud plánujete dlouhou noční práci ze své stanice, ale nechcete svého klienta SSH vypnout, můžete použít screen příkaz. To může odpojit vaši relaci obrazovky, ale žádný strach, úkoly, které jste zahájili, budou dokončeny.

Chcete-li obrazovku odpojit, stiskněte Ctrl-A a poté Ctrl-D z vaší klávesnice. Ke sledování postupu práce se můžete kdykoli přihlásit ze svého terminálu. Chcete-li se znovu připojit nebo připojit k existující relaci, použijte následující CLI.

$ screen -r
screen -D -r

2. Pokračujte ve spouštění relací SSH pomocí tmux Nástroj

Tmux neboli terminálový multiplexer je velmi oblíbený a užitečný nástroj pro programátory a systémové administrátory, který umožňuje uživatelům přepínat mezi programem a programem na stejném terminálu. Chcete-li, aby relace SSH běžely na pozadí, tmux může být velmi rychlým řešením. Může odpojit a znovu připojit aplikace, kde procesy běží na pozadí. Zde je návod k instalaci tmux pro distribuce Linuxu.

Pro Arch Linux:

$ sudo pacman -S tmux

Pro Red Hat Enterprise Linux:

$ sudo yum install tmux

Pro Ubuntu:

$ sudo apt-get install tmux

Pro OpenSUSE:

$ sudo zypper install tmux

Po instalaci tmux , spusťte tmux session pomocí terminálových příkazů. Instalace nezabere mnoho času. Jakmile dokončíte instalaci, můžete nyní začít s tmux . Chcete-li spustit tmux , stačí do terminálu zadat tmux.

$ tmux

Pokud potřebujete spustit více než jeden terminálový multiplexer, aby všechny relace SSH běžely na pozadí, v takovém případě můžete mít potíže s přepínáním mezi tmux na tmux . Zde jsou příkazové řádky pro přepínání jedné formy do druhé.

$ tmux detach
$ tmux attach
$ tmux attach -t 2

Chcete-li zkontrolovat všechny tmux použijte list tmux příkaz.

$ tmux ls

3. Pokračujte ve spouštění relací SSH pomocí byobu Nástroj

Nástroj byobu se většinou používá pro vzdálenou správu SSH a monitorování na obrazovce v systému Linux. Jedná se o software s otevřeným zdrojovým kódem a lze jej používat společně s tmux nebo screen nářadí. Aktuální stav, oznámení a zprávy můžete zobrazit pomocí byobu nářadí. Ačkoli byobu je standardně nainstalován s Ubuntu. Ale pokud tomu tak není, můžete jej nainstalovat do svého počítače se systémem Linux. Chcete-li zkontrolovat, zda byobu zda je nebo není ve vašem systému nainstalováno, zkontrolujte ostatní verze byobu.

$ byobu --version

Poté povolte byobu, pomůže to udržet vaše relace SSH spuštěné na pozadí i po odpojení.

$ byobu-enable

Zde jsou instalační procesy vysvětleny pomocí CLI.

Pro Ubuntu:

$ sudo apt install byobu

Pro OpenSUSE:

$ sudo zypper addrepo https://download.opensuse.org/repositories/utilities/openSUSE_Leap_42.3/utilities.repo
$ sudo zypper refresh
$ sudo zypper install byobu

Pro Arch Linux:

$ yaourt -S byobu
$ packer -S byobu

Pro Red Hat Enterprise Linux:

$ sudo yum install byobu

Pro Fedoru:

$ sudo dnf install byobu

Chcete-li začít s byobu , do terminálu zadejte byobu a stiskněte Enter.

$ byobu

Nyní, pokud používáte tmux nebo screen , můžete si vybrat a vybrat mezi kteroukoli z nich pro spolupráci na backendu.

$ byobu-select-backend

Nyní můžete spravovat a udržovat své relace SSH spuštěné na pozadí po odpojení pomocí funkčních kláves systémové klávesnice. Chcete-li začít s SSH vedle byobu, stiskněte CTRL+SHIFT+F2 z klávesnice, abyste povolili prostředí SSH. Chcete-li přesunout své relace SSH vpřed a vzad, můžete použít ALT+UP a ALT+DOWN .

Chcete-li odpojit své relace SSH, stiskněte F6 z klávesnice. Nyní, pokud hledáte odpojení, ale neodpojujete relaci, tady to máte. Chcete-li odpojit relace SSH a přesto se připojit, stiskněte SHIFT+F6 . Zde je pro vás další příkaz klávesnice navíc. Chcete-li zachovat pouze aktuální relaci obrazovky a zavřít všechna ostatní okna, stiskněte ALT+F6 .

4. Pokračujte ve spouštění relací SSH pomocí nohup Příkaz

nohup nebo příkaz „no hangup“ je velmi užitečný alternativní nástroj pro obrazovku nebo tmux. Umožňuje také uživatelům udržovat relace SSH spuštěné i po odpojení. nohup příkaz říká systému, aby spouštěl všechny procesy na pozadí tím, že zabrání zavěšení signálu (SIGHUP).

Chcete-li zkontrolovat nohup manuály a možnosti z vašeho linuxového terminálu, zadejte do terminálu následující příkaz a stiskněte Enter.

$ nohup options

Chcete-li zkontrolovat aktuálně aktivní seznamy úloh, použijte -l příkaz z vašeho terminálu.

$ jobs -l

Nyní pro připojení SSH, abyste se vyhnuli ztrátě připojení a udrželi vaše relace spuštěné i po odpojení, použijte příkazové řádky nohup následující za vaší úlohou. Výstupní seznam svých úloh můžete také získat v textovém souboru pomocí příkazu cat spolu s příkazem nohup.

$ nohup ./hello.sh
$ cat nohup.out

Chcete-li spustit proces na pozadí, můžete použít & symbol hned za nohup příkaz. Například, pokud chci otestovat ping pro wordpress-408970-1286763.cloudwaysapps.com na pozadí, příkazový řádek bude stejný jako na následujícím řádku. A když si myslíte, že je vaše práce hotová, chcete-li vidět výsledek, použijte pgrep příkaz.

$ nohup ping www.ubuntupit.com &
$ pgrep -a ping

5. Pokračujte ve spouštění relací SSH pomocí disown Příkaza

Pokud nemáte oprávnění root systému, možná toto vyřeší váš problém. disown příkaz může učinit jakoukoli úlohu neuvedenou ve vašem běžícím systémovém protokolu. Může tedy skrýt probíhající proces, aby se zabránilo všem chybám automatického odhlášení nebo zablokování signálu (SIGHUP). Ve skutečnosti můžete použít příkaz diswon process management k udržení vašich relací SSH v chodu tím, že skryjete svůj úkol.

Chcete-li odstranit nebo skrýt svůj úkol ze správce úloh, použijte příkaz diswon v terminálu.

$ disown <task>

Chcete-li zkontrolovat aktuální stav úlohy, použijte příkaz current shell.

$ current shell

Můžete také nastavit seznam úloh pomocí jednoho příkazu terminálu.

$ disown jobs1
$ disown jobs1 jobs2 ... jobsn

A ke kontrole seznamu úkolů použijte -l příkaz.

$ jobs -l

Chcete-li z okna odstranit všechny aktuální úlohy, zadejte -a syntaxe následující za příkazem disown.

$ disown -a

Chcete-li z okna odstranit pouze jednu nebo běžící úlohu, použijte -r syntaxe následovaná příkazem diswon.

$ disown -r

Nyní pro SSH, chcete-li po připojení relace spustit úlohu na pozadí, použijte -h syntax. Tento proces může udržet vaše relace SSH spuštěné i po odpojení.

$ disown -h jobID
$ disown -h %2

Oprava timeout Chyba SSH v RHEL

Když jste připojeni k SSH na Red Hat Enterprise Linux (RHEL), můžete mít častý problém s časovým limitem a ztratit připojení. K tomuto problému dochází z důvodu neplatného času odezvy formuláře buď na straně klienta, nebo na straně hostitele. V kořenovém adresáři Red Hat musíte najít a upravit sshd_config.txt soubor k vyřešení tohoto problému s časovým limitem. Až budete hotovi, můžete své připojení SSH obnovit i po odpojení.

Tam uvnitř sshd_config.txt , najdete dvě možnosti pojmenované jako ClientAliveInterval a ClientAliveCountMax , musíte upravit tyto soubory protokolu, abyste maximalizovali dobu odezvy serveru na klienta. Interval časového limitu se vypočítá vynásobením hodnot ClientAliveInterval a ClientAliveCountMax.

Vše, co potřebujete, je upravit dobu trvání těchto dvou hodnot podle doby odezvy vašeho systému a sítě. Chcete-li maximalizovat čas 10 minut pro ukončení klientského intervalu a 5krát pro počet klientů, pak váš textový registr uvnitř sshd_config.txt soubor bude vypadat jako níže. A potom restartujte SSH.

ClientAliveInterval 10m
ClientAliveCountMax 5

Poslední myšlenky

Pro správce systému je udržení relací a procesů SSH v chodu klíčovou úlohou pro uspokojení klienta a splnění úkolu. Odpojení a časté ztráty relací jsou velmi nepříjemné a obtěžující. V tomto příspěvku jsme se tedy pokusili diskutovat a ilustrovat důvody, proč se relace SSH odpojují, a také jsme popsali všechny možné metody, jak udržet relace SSH v chodu po odpojení.

Pokud jste si někdy prošli potížemi s odpojením relace SSH a víte, jak nepříjemné to může být, podělte se s námi o své zkušenosti. A také komentujte, pokud chcete něco přidat nebo se zeptat na cokoli souvisejícího s tímto příspěvkem v sekci komentářů. Nezapomeňte tento příspěvek sdílet se svými přáteli na sociálních sítích.


Linux
  1. Ssh – Ponechat procesy spuštěné po odpojení relace Ssh?

  2. Jak udržet relace SSH naživu

  3. Jak zajistit, aby program běžel i po odhlášení z ssh?

  1. 5 způsobů, jak udržet vzdálené relace a procesy SSH spuštěné po odpojení

  2. 4 způsoby, jak udržet příkaz spuštěný poté, co se odhlásíte z relace SSH

  3. qemu běžící v ssh:jak ukončit?

  1. Ssh – Jak spustit skript ihned po připojení přes Ssh?

  2. Jak používat booleovské hodnoty v rybí skořápce?

  3. Jak vypsat spuštěné relace obrazovky?