SSH (Secure Shell) är det slutgiltiga krypterade nätverkssystemet som tillåter användare att få fjärråtkomst från klient till server eller system. På grund av sitt asymmetriska kryptografisäkerhetssystem är det ganska säkert och säkert att komma åt servern även från ett osäkert klientnätverk. Men ibland på grund av inaktivitet eller dålig nätverkssignal kan SSH-fjärråtkomst kopplas bort. Oavsett orsaken är det som Linux-administratör ett viktigt jobb att hålla SSH-sessioner och processer igång efter frånkoppling.
Anledningar till att SSH-sessioner kopplas bort
I ett nötskal kan SSH-tunnelproxyfel, nätverks timeout, med fel nätverksport eller till och med inte loggat in i ditt system som root-användare också få dig frånkopplad från SSH-fjärradministrationen. I det här inlägget ska vi diskutera den vanligaste frågan om SSH; hur man håller SSH-sessioner och processer igång efter bortkoppling har inträffat.
1. Fortsätt köra SSH-sessioner med skärm
Kommando
De skärm
kommando är det mest använda och användbara kommandot för SSH-administration. De skärm
kommandot kan lösa värdnamnsproblem för både IPv4- och IPv6-adresser. Med rotfunktioner, skärm
kommandot kan logga ut eller avvisa en session från klientänden till serveränden. Om du är en mycket nybörjare på Linux SSH, här är några CLI som kan hjälpa dig att installera och hitta manualer för skärm
kommando.
För Ubuntu:
$ sudo apt installationsskärm
För OpenSUSE:
$ sudo zypper installationsskärm
För Arch Linux:
$ sudo pacman -S skärm
För Red Hat Enterprise Linux:
$ sudo yum installationsskärm
När du är klar med installationen, börja övervaka systemets startskärm.
$ skärm $ skärm --hjälp
När du har tillgång, SSH till servern, vill du få åtkomst på distans. Om du planerar ett långt nattarbete från din station men inte vill få ner din SSH-klient kan du använda skärm
kommando. Detta kan ta bort din skärmsession, men inga bekymmer, de uppgifter du initierade kommer att slutföras.
Tryck på för att ta bort skärmen Ctrl-A
och då Ctrl-D
från tangentbordet. Du kan logga in för att övervaka arbetsförloppet när som helst från din terminal. Använd följande CLI för att återansluta eller ansluta till den befintliga med sessionen.
$ skärm -r skärm -D -r
2. Fortsätt köra SSH-sessioner med hjälp av tmux
Verktyg
Tmux- eller terminalmultiplexern är ett mycket populärt och användbart verktyg för programmerare och systemadministratörer som gör det möjligt för användare att växla mellan program till program i samma terminal. För att hålla SSH-sessioner igång i bakgrunden, tmux
kan vara en mycket snabb lösning. Det kan koppla bort och bifoga applikationer där processerna hålls igång i bakgrunden. Här är installationsanvisningen för tmux
för Linux-distributioner.
För Arch Linux:
$ sudo pacman -S tmux
För Red Hat Enterprise Linux:
$ sudo yum installera tmux
För Ubuntu:
$ sudo apt-get install tmux
För OpenSUSE:
$ sudo zypper installera tmux
Efter installationen tmux
, starta tmux-session
med terminalkommandon. Det tar inte mycket tid att installeras. När du har installerat kan du nu komma igång med tmux
. Att börja tmux
, skriv bara tmux i terminalen.
$ tmux
Om du behöver köra mer än en terminalmultiplexer för att hålla alla SSH-sessioner i bakgrunden, i så fall kan du hitta svårigheter att växla mellan tmux
till tmux
. Här är kommandoraderna för att byta varandra.
$ tmux loss $ tmux attach $ tmux attach -t 2
För att kontrollera alla tmux
skärm använder tmux lista
kommando.
$ tmux ls
3. Fortsätt köra SSH-sessioner med hjälp av byobu
Verktyg
Byobu-verktyget används mest för SSH-fjärradministration och skärmövervakning på Linux. Det är en programvara med öppen källkod och kan användas tillsammans med tmux
eller den skärm
verktyg. Du kan se aktuell status, aviseringar och meddelanden med byobu
verktyg. Även om byobu
installeras som standard med Ubuntu. Men om det inte gör det kan du installera det i din Linux-maskin. För att kontrollera om byobu
är installerat eller inte i ditt system genom att kontrollera de andra versionerna av byobu.
$ byobu --version
Aktivera sedan byobu, det hjälper till att hålla dina SSH-sessioner igång i bakgrunden efter till och med frånkoppling.
$ byobu-aktivera
Här förklaras installationsprocesserna med CLI.
För Ubuntu:
$ sudo apt install byobu
För OpenSUSE:
$ sudo zypper addrepo https: // nedladdning.öppningsanvändning.org / repositories / utilities / openSUSE_Leap_42.3 / verktyg.repo
$ sudo zypper uppdatera $ sudo zypper installera 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 installera byobu
Att komma igång med byobu
, skriv bara byobu i terminalen och tryck Enter.
$ byobu
Nu, om du använder tmux
eller den skärm
, du kan välja och välja mellan någon av dem för backend samarbetat.
$ byobu-välj backend
Nu kan du hantera och hålla dina SSH-sessioner igång i bakgrunden efter frånkoppling, använd systemtangentbordets funktionstangenter. För att komma igång med SSH tillsammans med byobu, tryck på CTRL + SKIFT + F2
från ditt tangentbord för att aktivera SSH-miljön. För att flytta dina SSH-sessioner framåt och bakåt kan du använda ALT + UPP
och ALT + NED
.
För att koppla bort dina SSH-sessioner tryck F6
från tangentbordet. Nu, om du letar efter avskiljning men inte kopplar bort sessionen, här går du. För att koppla bort SSH-sessioner och ändå ansluta, tryck på SKIFT + F6
. Här är ytterligare ett tangentbordskommando för dig. Om du bara vill hålla skärmen aktiv och stänga alla andra fönster trycker du på ALT + F6
.
4. Fortsätt köra SSH-sessioner med hjälp av nohup
Kommando
De nohup
eller 'inget upphängningskommando' är ett mycket användbart alternativ för skärmen eller tmuxen. Det gör det också möjligt för användare att hålla SSH-sessionerna igång även efter att de kopplats bort. De nohup
kommandot säger till systemet att köra alla processer i bakgrunden genom att undvika att lägga på signalen (SIGHUP).
För att kontrollera nohup
manualer och alternativ bildar din Linux-terminal, skriv följande kommando i terminalen och tryck Enter.
$ nohup-alternativ
För att kontrollera de aktiva aktivitetslistorna använder du -l
kommando från din terminal.
$ jobb -l
För SSH-anslutning, för att undvika förlorad anslutning och hålla dina sessioner igång efter frånkoppling, använd nohup-kommandoraderna efter ditt jobb. Du kan också få utgångslistan över dina jobb i en textfil med hjälp av kommandot cat bredvid kommandot nohup.
$ nohup ./Hej.sh $ cat nohup.ut
För att köra en process i bakgrunden kan du använda &
strax efter nohup
kommando. Gilla, om jag vill testa ping för wordpress-408970-1286763.cloudwaysapps.com i bakgrunden kommer kommandoraden att vara precis som följande rad nedan. Och när du tror att ditt jobb är klart, för att se resultatet, använd pgrep
kommando.
$ nohup ping ubuntupit.com & $ pgrep -a ping
5. Fortsätt köra SSH-sessioner med förneka
Kommando
Om du inte har systemets rootprivilegier kanske den här kommer att lösa ditt problem. De förneka
kommandot kan göra alla uppgifter olistade från din systemlogg. Således kan det dölja en pågående process för att undvika alla automatiska utloggningsfel eller att signalen läggs på (SIGHUP). Du kan faktiskt använda kommandot diswon process management för att hålla dina SSH-sessioner igång genom att dölja din uppgift.
För att ta bort eller dölja din uppgift från uppgiftshanteraren använder du kommandot diswon i terminalen.
$ avfärdat
För att kontrollera den aktuella statusen för uppgiften, använd det aktuella skalkommandot.
$ nuvarande skal
Du kan också ställa in en lista över uppgifter med ett enda terminalkommando.
$ avvisade jobb1 $ avvisade jobb1 jobb2 ... jobbn
Och för att kontrollera uppgiftslistan, använd -l
kommando.
$ jobb -l
Om du vill ta bort alla aktuella jobb från fönstret skriver du -a
syntax följt av kommandot avvisa.
$ disown -a
Om du bara vill ta bort ett eller det pågående jobbet från fönstret använder du -r
syntax följt av diswon-kommandot.
$ disown -r
För SSH, för att köra ett jobb i bakgrunden efter att sessionen är ansluten, använd -h
syntax. Denna process kan hålla dina SSH-sessioner igång även efter frånkoppling.
$ disown -h jobID $ $ disown -h% 2
Fixa Paus
Fel på SSH i RHEL
När du är ansluten till SSH på Red Hat Enterprise Linux (RHEL) kan du få ett frekvent timeout-problem och förlora din anslutning. Det här problemet uppstår på grund av ogiltig svarstid från klientänden eller värdänden. I din Red Hat-rotkatalog måste du hitta och redigera sshd_config.Text
fil för att lösa dessa timeout-problem. När du är klar kan du få tillbaka din SSH-anslutning även efter att du kopplats bort.
Där inne i sshd_config.Text
, fil hittar du två alternativ som heter ClientAliveInterval
och ClientAliveCountMax
, du måste redigera dessa loggfiler för att maximera servern till klientens svarstid. Timeoutintervallet beräknas genom att multiplicera värdena för ClientAliveInterval och ClientAliveCountMax.
Allt du behöver är att redigera tidslängden för dessa två värden enligt ditt system och nätverkets svarstid. Låt dig vill maximera tiden 10 minuter för klientintervallets slut och 5 gånger för klientantalet, sedan ditt textregister inuti sshd_config.Text
filen kommer att se ut som nedan. Starta sedan om SSH.
ClientAliveInterval 10m ClientAliveCountMax 5
Slutgiltiga tankar
För en systemadministratör är det viktigt att hålla SSH-sessioner och processer igång för att tillfredsställa klienten och för att utföra uppgiften. Att kopplas bort och tappa täta sessioner är väldigt irriterande och besvärande. Så i det här inlägget har vi försökt diskutera och illustrera skälen till varför SSH-sessioner kopplas bort och beskrev också alla möjliga metoder för att hålla SSH-sessioner igång efter avkoppling.
Om du någonsin har gått igenom besväret med SSH-sessionens frånkoppling och vet hur irriterande det kan vara, snälla dela din erfarenhet med oss. Och kommentera också om du har något att lägga till eller fråga något relaterat till det här inlägget i kommentarsektionen. Glöm inte att dela detta inlägg med dina vänner på sociala medier.