SSH (Secure Shell) er krypteret netværkssystem, der slutter til ende, der giver brugere mulighed for at få fjernadgang fra klient til server eller system. På grund af dets asymmetriske kryptografisikkerhedssystem er det temmelig sikkert og sikkert at få adgang til serveren selv fra et usikkert klientnetværk. Men nogle gange på grund af inaktivitet eller dårligt netværkssignal kan SSH-fjernadgang blive afbrudt. Uanset årsagen er det som Linux-administrator et vigtigt job at holde SSH-sessioner og processer kørende efter afbrydelse.
Årsager til, at SSH-sessioner afbrydes
I en nøddeskal kan SSH-tunnelproxyfejl, netværks-timeout, ved hjælp af den forkerte netværksport eller endda ikke logget ind på dit system som rodbruger også få dig til at blive afbrudt fra SSH-fjernadministrationen. I dette indlæg skal vi diskutere det hyppigst stillede spørgsmål om SSH; hvordan man holder SSH-sessioner og processer kørende efter frakobling er sket.
1. Fortsæt med at køre SSH-sessioner ved hjælp af skærm
Kommando
Det skærm
kommando er den mest anvendte og nyttige kommando til SSH-administration. Det skærm
kommando kan løse værtsnavnproblemer for både IPv4- og IPv6-adresser. Med rodfunktioner er skærm
kommando kan logge ud eller afvise en session fra klientenden til serverenden. Hvis du er en meget nybegynder hos Linux SSH, her er nogle CLI, der kan hjælpe dig med at installere og finde manualer til skærm
kommando.
Til Ubuntu:
$ sudo apt installationsskærm
Til OpenSUSE:
$ sudo zypper installationsskærm
Til Arch Linux:
$ sudo pacman -S skærm
Til Red Hat Enterprise Linux:
$ sudo yum installationsskærm
Når du er færdig med installationen, skal du begynde at overvåge systemets startskærm.
$ skærm $ skærm - hjælp
Når du har adgangen, SSH til serveren, vil du få fjernadgang. Hvis du planlægger et langt natarbejde fra din station, men ikke ønsker at få din SSH-klient ned, kan du bruge skærm
kommando. Dette kan frigøre din skærmsession, men ingen bekymringer, de opgaver, du startede, bliver afsluttet.
Tryk på for at fjerne din skærm Ctrl-A
og så Ctrl-D
fra dit tastatur. Du kan logge på for at overvåge arbejdsforløbet når som helst fra din terminal. For at oprette forbindelse igen eller oprette forbindelse til den eksisterende med sessionen skal du bruge følgende CLI.
$ skærm -r skærm -D -r
2. Fortsæt med at køre SSH-sessioner ved hjælp af tmux
Værktøj
Tmux- eller terminalmultiplexeren er et meget populært og nyttigt værktøj til programmører og systemadministratorer, der giver brugerne mulighed for at skifte mellem program til program i samme terminal. For at holde SSH-sessioner kørende i baggrunden, tmux
kan være en meget hurtig løsning. Det kan frigøre og vedhæfte applikationer, hvor processerne holdes kørende i baggrunden. Her er installationsvejledningen til tmux
til Linux-distroer.
Til Arch Linux:
$ sudo pacman -S tmux
Til Red Hat Enterprise Linux:
$ sudo yum installer tmux
Til Ubuntu:
$ sudo apt-get install tmux
Til OpenSUSE:
$ sudo zypper installer tmux
Efter installation tmux
, start tmux-session
ved hjælp af terminalkommandoer. Det tager ikke meget tid at blive installeret. Når du er færdig med installationen, kan du nu komme i gang med tmux
. At begynde tmux
, skriv bare tmux i terminalen.
$ tmux
Hvis du har brug for at køre mere end en terminalmultiplexer for at holde alle SSH-sessioner kørende i baggrunden, kan du i så fald finde vanskeligheder med at skifte mellem tmux
til tmux
. Her er kommandolinjerne for at skifte mellem hinanden.
$ tmux frigør $ tmux vedhæft $ tmux vedhæft -t 2
For at kontrollere alle tmux
skærm bruger tmux liste
kommando.
$ tmux ls
3. Fortsæt med at køre SSH-sessioner ved hjælp af byobu
Værktøj
Byobu-værktøjet bruges hovedsageligt til fjern SSH-administration og skærmovervågning på Linux. Det er en open source-software og kan bruges sammen med tmux
eller den skærm
værktøj. Du kan se den aktuelle status, meddelelser og meddelelser med byobu
værktøj. Selvom byobu
kommer som standard installeret med Ubuntu. Men hvis det ikke gør det, kan du installere det inde i din Linux-maskine. For at kontrollere, om byobu
er installeret eller ikke i dit system ved at kontrollere de andre versioner af byobu.
$ byobu - version
Aktivér derefter byobu, det hjælper med at holde dine SSH-sessioner kørende i baggrunden efter endda afbrydelse.
$ byobu-aktiver
Her forklares installationsprocesserne med CLI.
Til Ubuntu:
$ sudo apt install byobu
Til OpenSUSE:
$ sudo zypper addrepo https: // download.åbent forbrug.org / repositories / utilities / openSUSE_Leap_42.3 / forsyningsselskaber.repo
$ sudo zypper opdater $ sudo zypper installer byobu
Til Arch Linux:
$ yaourt -S byobu $ packer -S byobu
Til Red Hat Enterprise Linux:
$ sudo yum installer byobu
For Fedora:
$ sudo dnf installerer byobu
At komme i gang med byobu
, skriv bare byobu i terminalen og tryk Enter.
$ byobu
Nu, hvis du bruger tmux
eller den skærm
, du kan vælge og vælge mellem dem for backend samarbejdet.
$ byobu-select-backend
Nu kan du administrere og holde dine SSH-sessioner kørende i baggrunden efter afbrydelse, brug systemtastaturets funktionstaster. For at komme i gang med SSH sammen med byobu skal du trykke på CTRL + SKIFT + F2
fra dit tastatur for at aktivere SSH-miljøet. For at flytte dine SSH-sessioner frem og tilbage kan du bruge ALT + OP
og ALT + NED
.
For at afbryde dine SSH-sessioner skal du trykke på F6
fra tastaturet. Hvis du leder efter løsrivelse, men ikke afbryder sessionen, så er du klar. Tryk på for at løsne SSH-sessioner og stadig få forbindelse SKIFT + F6
. Her er en ekstra tastaturkommando til dig. For kun at holde skærmen aktiv, og luk alle andre vinduer, skal du trykke på ALT + F6
.
4. Fortsæt med at køre SSH-sessioner ved hjælp af nohup
Kommando
Det nohup
eller 'ingen hangup' -kommando er et meget nyttigt alternativt værktøj til skærmen eller tmuxen. Det giver også brugerne mulighed for at holde SSH-sessionerne kørende, selv efter at de blev afbrudt. Det nohup
kommando fortæller systemet at køre alle processer i baggrunden ved at undgå at lægge på signalet (SIGHUP).
For at kontrollere nohup
manualer og muligheder danner din Linux-terminal, skriv følgende kommando i terminalen og tryk Enter.
$ nohup muligheder
For at kontrollere de aktuelt aktive joblister skal du bruge -l
kommando fra din terminal.
$ job -l
For SSH-forbindelse skal du bruge nohup-kommandolinjerne efter dit job for at undgå mistet forbindelse og holde dine sessioner kørende efter afbrydelse. Du kan også få outputlisten over dine job i en tekstfil ved at bruge cat-kommandoen sammen med nohup-kommandoen.
$ nohup ./Hej.sh $ kat nohup.ud
For at køre en proces i baggrunden kan du bruge &
symbolet lige efter nohup
kommando. Ligesom hvis jeg vil teste ping for wordpress-408970-1286763.cloudwaysapps.com i baggrunden, vil kommandolinjen være ligesom den følgende linje nedenfor. Og når du tror, dit job er gjort, skal du bruge. For at se resultatet pgrep
kommando.
$ nohup ping ubuntupit.com & $ pgrep -a ping
5. Fortsæt med at køre SSH-sessioner ved hjælp af afvise
Kommando
Hvis du ikke har systemets root-rettigheder, vil denne måske løse dit problem. Det afvise
kommando kan gøre enhver opgave unoteret fra din kørende systemlog. Således kan det skjule en igangværende proces for at undgå alle de automatiske udlogningsfejl eller signalet lægge på (SIGHUP). Du kan faktisk bruge kommandoen diswon process management til at holde dine SSH-sessioner kørende ved at skjule din opgave.
For at fjerne eller skjule din opgave fra task manager, skal du bruge kommandoen diswon i terminalen.
$ afvises
For at kontrollere opgavens aktuelle status skal du bruge den aktuelle shell-kommando.
$ nuværende skal
Du kan også indstille en liste over opgaver ved en enkelt linjekontrol.
$ afviste job1 $ afviste job1 job2 ... jobn
Og for at kontrollere opgavelisten skal du bruge -l
kommando.
$ job -l
For at fjerne alle aktuelle job fra vinduet skal du skrive --en
syntaks efterfulgt af kommandoen afvise.
$ afvise -a
Brug kun for at fjerne et eller det kørende job fra vinduet -r
syntaks efterfulgt af diswon-kommandoen.
$ afvise -r
Nu til SSH, hvis du vil køre et job i baggrunden, efter at sessionen er tilsluttet, skal du bruge -h
syntaks. Denne proces kan holde dine SSH-sessioner kørende, selv efter afbrydelse.
$ afvist -h jobID $ afvist -h% 2
Fastsættelse af tiden er gået
Fejl ved SSH i RHEL
Når du har forbindelse til SSH på Red Hat Enterprise Linux (RHEL), kan du få et hyppigt timeout-problem og miste din forbindelse. Dette problem opstår på grund af ugyldig responstid fra enten klientenden eller værtenden. I din Red Hat rodmappe skal du finde og redigere sshd_config.txt
fil for at løse disse timeout-problemer. Når du er færdig, kan du få din SSH-forbindelse tilbage, selv efter at du er afbrudt.
Der inde i sshd_config.txt
, fil finder du to muligheder, der hedder ClientAliveInterval
og ClientAliveCountMax
, skal du redigere disse logfiler for at maksimere serveren til klientens responstid. Timeout-intervallet beregnes ved at multiplicere værdierne for ClientAliveInterval og ClientAliveCountMax.
Alt hvad du behøver er at redigere varigheden af disse to værdier i henhold til dit systems og netværksresponsvarighed. Lad dig ønske at maksimere tiden 10 minutter til klientintervallens afslutning og 5 gange for klienttællingen, derefter din tekstregistrering inde i sshd_config.txt
filen vil være som nedenfor. Genstart derefter SSH.
ClientAliveInterval 10m ClientAliveCountMax 5
Afsluttende tanker
For en systemadministrator er det vigtigt, at SSH-sessioner og processer kører, er et afgørende job for at tilfredsstille klienten og udføre opgaven. At få afbrudt og hyppige tabte sessioner er meget irriterende og generende. Så i dette indlæg har vi forsøgt at diskutere og illustrere årsagerne til, at SSH-sessioner bliver afbrudt og også beskrevet alle de mulige metoder til, hvordan man holder SSH-sessioner kørende efter afbrydelse.
Hvis du nogensinde har været igennem besværet med frakobling af SSH-session og ved, hvor irriterende det kan være, kan du dele din oplevelse med os. Og kommenter også, hvis du har noget at tilføje eller bede om noget relateret til dette indlæg i kommentarsektionen. Glem ikke at dele dette indlæg med dine venner på sociale medier.