Trumpai: šiame vadove aptarsime įprastus SSH naudojimo atvejus. Taip pat aptarsime dažniausiai naudojamas SSH konfigūracijas, kurios gali būti naudojamos kasdieniame gyvenime, siekiant padidinti jūsų produktyvumą.
Secure Shell (SSH) yra plačiai naudojamas tinklo protokolas, leidžiantis saugiai bendrauti su nuotoliniais prieglobos įrenginiais. Jis užtikrina saugumą šifruodamas visą ryšį tarp jų.
Šiame skyriuje aptarsime kai kuriuos populiarius naudojimo atvejus SSH protokolas.
Yra įvairių būdų, kaip bendrauti su nuotoliniais Linux pagrindiniais kompiuteriais naudojant tokius protokolus kaip telnet, ftp, netcatir kt. Tačiau jie nėra saugūs, nes nėra šifravimo. Galime naudoti SSH protokolą, kad užtikrintume saugų ryšį tarp pagrindinių kompiuterių.
Turime naudoti an SSH klientui bendrauti su nuotoliniu kompiuteriu. „Linux“ yra daug GUI ir CLI pagrįstų klientų. Tačiau šiame vadove naudosime komandinės eilutės įrankį, vadinamą
ssh. Pagal numatytuosius nustatymus, ssh įrankis yra prieinamas daugumoje Linux platinimų.SSH komandos sintaksė yra tokia:
$ ssh [OPTIONS] [KOMANDOS] [ARGS]
Čia laužtiniai skliaustai ([])
reiškia pasirenkamus argumentus, o kampinius skliaustus (<>)
atstovauja privalomus argumentus.
Prisijunkite prie nuotolinio pagrindinio kompiuterio naudodami ssh klientas:
$ ssh -l šaknis 192.168.19.130.
Šiame pavyzdyje mes nurodėme prisijungimo vardą naudodami -l
parinktis ir tikslas yra 192.168.19.130. SSH ryšys užmezgamas įvedus teisingą slaptažodį. Dabar mes galime vykdyti komandas nuotoliniame pagrindiniame kompiuteryje, kaip ir vietinėje sistemoje.
# prieglobos pavadinimas.
Norėdami nutraukti sesiją, galime naudoti išeiti komandą arba ctrl+D
klavišų kombinacija.
Svarbu pažymėti, kad kiekvieną naują seansą turime autentifikuoti nuotolinį pagrindinį kompiuterį. Kad kiekvieną kartą neįvestume slaptažodžių, galime nustatyti SSH prisijungimą be slaptažodžio.
Ankstesniame skyriuje matėme, kaip užmegzti ryšį su nuotoliniu kompiuteriu, kuris tinka tik tada, kai ketiname naudoti nuotolinį pagrindinį kompiuterį ilgesnį laiką. Kartais mums tereikia vykdyti vieną ar dvi komandas nuotoliniame pagrindiniame kompiuteryje. Tokiais atvejais šias komandas galime vykdyti nesukurdami ilgalaikės sesijos.
Vykdykime hostname komanda nuotoliniame pagrindiniame kompiuteryje:
$ ssh -l šaknis 192.168.19.130 pagrindinio kompiuterio pavadinimas.
Panašiai galime vykdyti kelias komandas nuotoliniame Linux kompiuteryje:
$ ssh -l šaknis 192.168.19.130 'hostname; pwd'
Svarbu pažymėti, kad komandos turi būti kabutėse ir atskirtos kabliataškiu (;)
charakteris. Jei norite paleisti komandas keliuose nuotoliniuose „Linux“ pagrindiniuose kompiuteriuose, perskaitykite mūsų straipsnį - Pssh – paleiskite komandas keliuose nuotoliniuose „Linux“ kompiuteriuose.
Panašiai kaip ir komandos, mes taip pat galime vykdyti vietinį scenarijų nuotoliniame pagrindiniame kompiuteryje. Supraskime tai pavyzdžiu.
Pirmiausia vietiniame kompiuteryje sukurkite paprastą apvalkalo scenarijų su vykdomosiomis teisėmis:
$ cat script.sh prieglobos pavadinimas. pwd.
Dabar vykdykime tai nuotoliniame pagrindiniame kompiuteryje:
$ ssh [apsaugotas el. paštas] 'bash -s' < ./script.sh
Šiame pavyzdyje mes panaudojome -s
bash parinktis, norint nuskaityti scenarijų iš standartinės įvesties.
Labai dažnai dirbame su failais ir katalogais. Viena įprasta naudotojų atliekama operacija yra katalogų ir failų kopijavimas. Kaip ir vietiniai įrenginiai, mes galime kopijuoti failus ir katalogus tarp nuotolinių kompiuterių naudodami scp komanda, kuri saugiai kopijuoja failus naudodama SSH protokolą.
Nukopijuokime scenarijus.sh failą į /tmp nuotolinio kompiuterio katalogas:
$ scp script.sh [apsaugotas el. paštas]:/tmp.
Dabar patikrinkite, ar failas buvo nukopijuotas:
$ ssh [apsaugotas el. paštas] „ls /tmp/script.sh“
Panašiai galime naudoti komandą scp, norėdami nukopijuoti katalogus. Tačiau turime naudoti -r
parinktis su komanda.
SSH palaiko duomenų glaudinimą naudojant gzip glaudinimo algoritmas, kuris suglaudina visus galimus duomenų srautus, tokius kaip stdin, stdout, stderr ir pan. Ši parinktis labai praverčia naudojant lėtus tinklo ryšius.
Suspaudimą SSH galime įjungti naudodami -C
variantas:
$ ssh -C -l šaknis 192.168.19.130 'hostname'
Linux vartotojams dažnai to reikia derinti SSH seansus Norėdami ištirti įvairias su SSH ryšiu ir konfigūracija susijusias problemas. Tokiais atvejais galime įjungti išsamų režimą, kuris spausdina dabartinės sesijos derinimo žurnalus.
Įgalinkime žodinį režimą naudodami -v
variantas:
$ ssh -v -l šaknis 192.168.19.130 pagrindinio kompiuterio pavadinimas.
Be to, galime padidinti žodiškumo lygį naudodami kartotinį -v
galimybės.
-v
– nustato 1 išsamumo lygį ir pateikia išsamią informaciją apie kliento veiklą.-vv
– nustato 2 išsamumo lygį ir pateikia išsamią informaciją apie kliento ir serverio veiklą.-vvv
– nustato 3 išsamumo lygį ir pateikia išsamesnę informaciją apie kliento ir serverio veiklą.Maksimalus SSH palaikomas žodiškumo lygis yra 3. Pažiūrėkime, kaip tai veikia:
$ ssh -vvv -l šaknis 192.168.19.130 pagrindinio kompiuterio pavadinimas.
Aukščiau pateiktame pavyzdyje derinimas1 reiškia derinimo pranešimą, įgalintą 1 išsamumo lygiu. Panašiai, derinimas2 ir derinimas3 atspindi derinimo pranešimus, įgalintus atitinkamai 2 ir 3 išsamumo lygiais.
Mes galime naudoti pabėgimo sekas su SSH valdyti kliento terminalo seansus. Aptarkime dažniausiai naudojamas pabėgimo sekas su atitinkamais naudojimo atvejais.
Kartais turime atlikti keletą veiksmų vietiniame kompiuteryje nenutraukdami dabartinės SSH sesijos. Tokiu atveju galime sustabdyti dabartinę sesiją naudodami ~ + Ctrl + z
klavišų seka.
Pirmiausia prisijunkite prie nuotolinio kompiuterio ir paleiskite pagrindinio kompiuterio pavadinimas komanda:
$ ssh -l šaknis 192.168.19.130. # prieglobos pavadinimas.
Tada, norėdami sustabdyti dabartinę sesiją, pirmiausia įveskite tilde (~)
simbolį, tada paspauskite ctrl + z
raktai. Svarbu pažymėti, kad tildė (~)
simbolis nebus rodomas stdout, kol nepaspausime ctrl + z
.
Dabar patikrinkime, ar sesija buvo sustabdyta:
$ darbo vietų.
Čia matome, kad dabartinė SSH sesija veikia fone.
Tęskime seansą dar kartą naudodami fg komandą ir vykdyti pagrindinio kompiuterio pavadinimas komanda:
$ fg %1.
Esu tikras, kad matėte užšaldytas SSH sesijas, kurios nutinka, kai sesiją pertraukia nestabilus tinklas. Čia negalime nutraukti seanso naudodami išeiti komandą. Tačiau mes galime jį nutraukti naudodami "~ + ."
klavišų seka.
Pirmiausia prisijunkite prie nuotolinio kompiuterio:
$ ssh -l šaknis 192.168.19.130.
Dabar naudokite "~ + ."
klavišų kombinacija, kad būtų nutraukta dabartinė sesija.
Šiame pavyzdyje tai matome SSH rodo pranešimą - Ryšys su 192.168.19.130 nutrauktas.
Vienas įdomus dalykas yra tai, kad yra pabėgimo seka, kurioje pateikiamos visos palaikomos pabėgimo sekos. Mes galime naudoti “~ + ?”
pabėgimo seka palaikomų pabėgimo sekų sąrašui:
Čia turime paspausti klavišą Enter, kad išeitume iš pagalbos meniu.
Šiame skyriuje aptarsime serverio konfigūraciją sustiprinti SSH serverį. SSH serveris išsaugo visą savo konfigūraciją /etc/ssh/sshd_config failą. Svarbu pažymėti, kad norint atnaujinti SSH konfigūraciją, reikalinga root vartotojo prieiga.
Kaip geriausia praktika, visada turėtume rodyti reklamjuostę prieš užmezgant SSH ryšį. Kai kuriais atvejais tai neleidžia neįgaliotiems vartotojams pasiekti nuotolinių prieglobų. Pažiūrėkime, kaip žingsnis po žingsnio įjungti šį nustatymą.
Pirmiausia nuotoliniame serveryje sukurkite tekstinį failą su įspėjamuoju pranešimu:
# vi /etc/banner.txt
Tada pridėkite šį reklamjuostės pranešimą:
********************************************************************* Įspėjimas!!! Bandote prisijungti prie techmint.com serverio. Visa veikla šiame serveryje yra stebima. Nedelsdami nutraukite seansą, jei nesate įgaliotas vartotojas. *********************************************************************
Tada atidarykite /etc/ssh/sshd_config failą ir nurodykite failą su Reklamjuostė direktyva:
Reklamjuostė /etc/banner.txt.
Dabar paleiskite iš naujo sshd paslaugą ir nutraukite seansą naudodami išeiti komanda:
# systemctl iš naujo paleiskite sshd. # išėjimas.
Galiausiai patvirtinkite reklamjuostę prisijungę prie nuotolinio kompiuterio:
$ ssh -l šaknis 192.168.19.130.
Čia mes galime tai padaryti serveryje rodo SSH reklamjuostę teisingai.
Iki šiol naudojome root naudotoją, kad pasiektume nuotolinį pagrindinį kompiuterį. Tačiau tai prieštarauja mažiausios privilegijos principui. Gamybos aplinkoje root vartotojo prieiga visada ribojama siekiant pagerinti saugumą.
Mes galime naudoti PermitRootLogin direktyva išjungti root vartotojo prisijungimą.
Pirmiausia atidarykite /etc/ssh/sshd_config failą ir naudokite parinktį ne
su PermitRootLogin direktyva:
PermitRootLogin Nr.
Dabar paleiskite iš naujo sshd paslaugą ir nutraukite seansą naudodami išeiti komanda:
# systemctl iš naujo paleiskite sshd. # išėjimas.
Galiausiai patvirtinkite tai sukurdami naują SSH sesiją:
$ ssh -l šaknis 192.168.19.130.
Čia galime pastebėti, kad negalime prisijungti prie nuotolinio pagrindinio kompiuterio su root naudotoju. Norėdami leisti root naudotojui prisijungti, galime naudoti parinktį taip
su ta pačia direktyva.
Pagal numatytuosius nustatymus SSH naudoja TCP 22 prievadą. Tačiau mes galime sukonfigūruoti SSH, kad jis veiktų kitame prievade, t.y. 8088.
Pirmiausia atidarykite /etc/ssh/sshd_config failą ir naudokite 8088 vertė su Uostas direktyva:
8088 prievadas.
Tada iš naujo paleiskite sshd paslaugą ir nutraukite sesiją:
# systemctl iš naujo paleiskite sshd. # išėjimas.
Dabar prisijunkite prie nuotolinio pagrindinio kompiuterio:
$ ssh -p 8088 -l šaknis 192.168.19.130.
Šiame pavyzdyje mes panaudojome -p
galimybė nurodyti prievado numerį.
Kai kuriais atvejais turime atlikti keletą kitų veiksmų, kad galėtume susisiekti per nenumatytąjį prievadą. Pavyzdžiui, galimų prievadų nustatymas, ugniasienės taisyklių atnaujinimas, SELinux nustatymai ir kt.
Šiame straipsnyje aptarėme SSH protokolą ir jo įprastus naudojimo atvejus. Toliau aptarėme keletą įprastų variantų. Galiausiai aptarėme kai kuriuos nustatymus apsaugoti SSH serverį.
Ar žinote kokį kitą geriausią SSH komandų naudojimą sistemoje „Linux“? Praneškite mums savo nuomonę toliau pateiktose pastabose.