SSH (Secure Shell) е криптирана мрежова система от край до край, която позволява на потребителите да получават отдалечен достъп от клиент до сървър или система. Поради своята асиметрична система за защита на криптографията е доста сигурен и сигурен достъп до сървъра дори от опасна клиентска мрежа. Но понякога поради неактивност или лош мрежов сигнал, SSH отдалеченият достъп може да бъде прекъснат. Каквато и да е причината, като администратор на Linux е жизненоважна задача да поддържате SSH сесии и процеси, работещи след прекъсване на връзката.
Причини, поради които SSH сесиите се прекъсват
Накратко, SSH тунелна прокси грешка, изчакване на мрежата, използване на грешен мрежов порт или дори не влизане във вашата система като root потребител също може да ви откачи от отдалеченото администриране на SSH. В този пост ще обсъдим най-често задавания въпрос за SSH; как да поддържате SSH сесии и процеси да работят след прекъсване на връзката.
1. Продължавайте да изпълнявате SSH сесии с помощта на екран
Команда
The екран
команда е най-използваната и полезна команда за администриране на SSH. The екран
команда може да разреши проблеми с името на хоста както за IPv4, така и за IPv6 адреси. С коренните функционалности, екран
команда може да излезе или да отхвърли сесия от края на клиента до края на сървъра. Ако сте много начинаещ в Linux SSH, ето някои CLI, които могат да ви помогнат да инсталирате и намерите ръководства за екран
команда.
За Ubuntu:
Екран за инсталиране на $ sudo apt
За OpenSUSE:
Екран за инсталиране на $ sudo zypper
За Arch Linux:
$ sudo pacman -S екран
За Red Hat Enterprise Linux:
$ sudo yum екран за инсталиране
След като приключите с инсталирането, започнете да наблюдавате началния екран на вашата система.
$ screen $ screen --help
След като имате достъп, SSH до сървъра, искате да получите достъп от разстояние. Ако планирате дълга нощна работа от вашата станция, но не искате да сваляте вашия SSH клиент, можете да използвате екран
команда. Това може да отдели вашата сесия на екрана, но без притеснения, задачите, които сте инициирали, ще бъдат изпълнени.
За да отделите екрана, натиснете Ctrl-A
и тогава Ctrl-D
от клавиатурата. Можете да влезете, за да следите напредъка на работата по всяко време от вашия терминал. За да се свържете отново или да се свържете със съществуващата със сесията, използвайте следния CLI.
$ screen -r screen -D -r
2. Продължавайте да изпълнявате SSH сесии с помощта на tmux
Инструмент
Мултиплексорът tmux или терминал е много популярен и полезен инструмент за програмисти и системни администратори, който позволява на потребителите да превключват между програма към програма в същия терминал. За да поддържате сесиите на SSH във фонов режим, tmux
може да бъде много бързо решение. Той може да отделя и прикачва приложения, където процесите се поддържат във фонов режим. Ето инструкцията за инсталиране на tmux
за Linux дистрибуции.
За Arch Linux:
$ sudo pacman -S tmux
За Red Hat Enterprise Linux:
$ sudo yum инсталирате tmux
За Ubuntu:
$ sudo apt-get инсталирайте tmux
За OpenSUSE:
$ sudo zypper инсталирайте tmux
След инсталиране tmux
, стартирайте сесия tmux
използване на терминални команди. Няма да отнеме много време, за да се инсталира. След като приключите с инсталирането, вече можете да започнете tmux
. Да започна tmux
, просто напишете tmux в терминала.
$ tmux
Ако трябва да стартирате повече от един терминален мултиплексор, за да поддържате всички SSH сесии работещи във фонов режим, в този случай може да срещнете трудности при превключване между tmux
да се tmux
. Ето командните редове за превключване на една форма от друга.
$ tmux отделя $ tmux прикачи $ tmux прикачи -t 2
За да проверите всички tmux
екран използвайте tmux списък
команда.
$ tmux ls
3. Продължавайте да изпълнявате SSH сесии с помощта на byobu
Инструмент
Инструментът byobu се използва най-вече за отдалечено администриране на SSH и мониторинг на екрана на Linux. Това е софтуер с отворен код и може да се използва заедно с tmux
или екран
инструмент. Можете да видите текущото състояние, известия и съобщения с byobu
инструмент. Въпреки че byobu
идва инсталиран по подразбиране с Ubuntu. Но ако не стане, можете да го инсталирате във вашата Linux машина. За да проверите дали byobu
е инсталиран или не във вашата система, като проверите останалите версии на byobu.
$ byobu --версия
След това активирайте byobu, това ще помогне да запазите SSH сесиите си във фонов режим дори след прекъсване на връзката.
$ byobu-enable
Тук инсталационните процеси са обяснени с CLI.
За Ubuntu:
$ sudo apt инсталиране byobu
За OpenSUSE:
$ sudo zypper addrepo https: // изтегляне.opensuse.org / хранилища / помощни програми / openSUSE_Leap_42.3 / комунални услуги.репо
$ sudo zypper опресняване $ sudo zypper инсталиране byobu
За Arch Linux:
$ yaourt -S byobu $ packer -S byobu
За Red Hat Enterprise Linux:
$ sudo yum инсталиране byobu
За Fedora:
$ sudo dnf инсталиране byobu
За да започнете byobu
, просто напишете byobu в терминала и натиснете Enter.
$ byobu
Сега, ако използвате tmux
или екран
, можете да избирате и да избирате между който и да е от тях за съвместно сътрудничество.
$ byobu-select-backend
Сега можете да управлявате и поддържате вашите SSH сесии да работят във фонов режим след изключване, използвайте функционалните клавиши на системната клавиатура. За да започнете със SSH заедно с byobu, натиснете CTRL + SHIFT + F2
от клавиатурата, за да активирате SSH средата. За да преместите вашите SSH сесии напред и назад, можете да използвате ALT + НАГОРЕ
и ALT + НАДОЛУ
.
За да изключите вашите SSH сесии, натиснете F6
от клавиатурата. Сега, ако търсите отделяне, но не прекъсване на сесията, ето ви. За да отделите SSH сесиите и да продължите да се свързвате, натиснете SHIFT + F6
. Ето още една допълнителна команда за клавиатура за вас. Натиснете, за да поддържате активна само сесията на екрана и да затворите всички останали прозорци ALT + F6
.
4. Продължавайте да изпълнявате SSH сесии с помощта на не
Команда
The не
или командата „no hangup“ е много полезен алтернативен инструмент за екрана или tmux. Той също така позволява на потребителите да поддържат SSH сесиите да работят дори след прекъсване на връзката им. The не
команда казва на системата да изпълнява всички процеси във фонов режим, като избягва затварянето на сигнала (SIGHUP).
За да проверите не
ръководства и опции от вашия Linux терминал, въведете следната команда в терминала и натиснете Enter.
$ nohup опции
За да проверите текущо активните списъци с задания, използвайте -л
команда от вашия терминал.
$ работни места -l
Сега, за SSH връзка, за да избегнете загуба на връзка и да поддържате вашите сесии работещи след прекъсване на връзката, използвайте командните редове nohup, следвани от вашата работа. Можете също така да получите изходния списък на вашите задачи в текстов файл, като използвате командата cat заедно с командата nohup.
$ nohup ./Здравейте.sh $ котка nohup.навън
За да стартирате процес във фонов режим, можете да използвате &
символ непосредствено след не
команда. Например, ако искам да тествам ping за wordpress-408970-1286763.cloudwaysapps.com във фонов режим, командният ред ще бъде точно като следния ред по-долу. И когато смятате, че работата ви е свършена, за да видите резултата, използвайте pgrep
команда.
$ nohup пинг ubuntupit.com & $ pgrep -пинг
5. Продължавайте да изпълнявате SSH сесии с помощта на отричам се
Команда
Ако нямате привилегии на системния корен, може би този ще реши проблема ви. The отричам се
команда може да направи всяка задача, която не е включена в списъка от текущия ви системен регистър. По този начин той може да скрие текущия процес, за да избегне всички грешки при автоматичното излизане или затварянето на сигнала (SIGHUP). Всъщност можете да използвате командата за управление на процеса на разединяване, за да поддържате вашите SSH сесии работещи, като скриете задачата си.
За да премахнете или скриете задачата си от диспечера на задачите, използвайте командата diswon в терминала.
$ отрече
За да проверите текущото състояние на задачата, използвайте текущата команда на черупката.
$ текуща черупка
Можете също така да зададете списък със задачи с еднолинейна терминална команда.
$ отрече се от работни места1 $ откаже се от работа1 работни места2 ... работни местаn
И за да проверите списъка със задачи, използвайте -л
команда.
$ работни места -l
За да премахнете всички текущи задачи от прозореца, въведете -а
синтаксис, последван от командата disown.
$ отрече -a
За да премахнете само едно или изпълняващото се задание от прозореца, използвайте -r
синтаксис, последван от командата diswon.
$ отрече -r
Сега за SSH, за да изпълните задача във фонов режим след свързване на сесията, използвайте -з
синтаксис. Този процес може да поддържа вашите SSH сесии да работят дори след прекъсване на връзката.
$ disown -h jobID $ disown -h% 2
Поправяне на изчакване
Грешка на SSH в RHEL
Когато сте свързани към SSH на Red Hat Enterprise Linux (RHEL), може да получите често срещан проблем с изчакването и да загубите връзката си. Този проблем възниква поради невалидното време за отговор от страна на клиента или на хоста. В основната директория на Red Hat трябва да намерите и редактирате sshd_config.текст
файл за решаване на проблема с изчакването. След като приключите, можете да си върнете SSH връзката дори след прекъсване на връзката.
Там вътре в sshd_config.текст
, файл ще намерите две опции, наречени ClientAliveInterval
и ClientAliveCountMax
, трябва да редактирате тези регистрационни файлове, за да увеличите максимално времето за реакция на сървъра към клиента. Интервалът на изчакване се изчислява чрез умножаване на стойностите на ClientAliveInterval и ClientAliveCountMax.
Всичко, от което се нуждаете, е да редактирате продължителността на времето на тези две стойности според вашата система и продължителността на реакцията на мрежата. Позволете да искате да увеличите максимално времето 10 минути за края на клиентския интервал и 5 пъти за броя на клиентите, след което вашият текстов регистър вътре в sshd_config.текст
файлът ще бъде както по-долу. И след това рестартирайте SSH.
ClientAliveInterval 10m ClientAliveCountMax 5
Финални мисли
За системния администратор поддържането на SSH сесии и процеси е решаваща работа за удовлетворяване на клиента и за изпълнение на задачата. Прекъсването на връзката и загубата на чести сесии е много досадно и досадно. Така че в тази публикация се опитахме да обсъдим и илюстрираме причините, поради които SSH сесиите се прекъсват, а също така описахме всички възможни методи за това как да поддържаме SSH сесиите да работят след изключване.
Ако някога сте преминали през караницата с изключването на SSH сесия и знаете колко досадно може да бъде, моля, споделете своя опит с нас. Освен това коментирайте, ако имате какво да добавите или поискате нещо, свързано с тази публикация в раздела за коментари. Не забравяйте да споделите тази публикация с приятелите си в социалните медии.