Në këtë artikull, kemi grumbulluar teknikët tanë më të mirë për përdorimin më efektiv të SSH. Do të mësoni se si:
- Të shtoni një faktor të dytë në hyrjen SSH
- Të përdorni agent forwarding në mënyrë të sigurt
- Të dilni nga një sesion SSH që është bllokuar
- Të mbani një terminal të hapur shpesh
- Të ndani një sesion të terminalit me një mik (pa Zoom!)
Shtimi i një faktori të dytë në SSH tuaj
Faktori i dytë i autentikimit në lidhjet tuaja SSH mund të shtohet në pesë mënyra të ndryshme:
- Përmirësoni OpenSSH tuaj dhe përdorni çelësa kriptimi. Në shkurt 2020, OpenSSH fitoi mbështetje për çelësa kriptimi FIDO U2F (Faktori i Dytë Universal). Kjo është një veçori e re shkëlqyese, por ka një nuancë: vetëm klientët dhe serverët që u përditësuan në versionin OpenSSH 8.2 ose më lart do të mund të përdorin çelësa kriptimi, pasi përditësimi i shkurtit introdukton lloje të reja çelësash për ta. Me komandën
ssh –Vmund të kontrolloni versionin e klientit SSH, ndërsa versionin e serverit mund ta kontrolloni me komandënnc [servername] 22
Në versionin e shkurtit janë shtuar dy lloje të reja çelësash — ecdsa-sk dhe ed25519-sk (së bashku me certifikatat përkatëse). Për të gjeneruar skedarin e çelësit, mjafton të vendosni çelësin tuaj të kriptimit dhe të ekzekutoni komandën:$ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_skKjo do të krijojë çelësin publik dhe sekret dhe do t'i lidhë ato me pajisjen tuaj U2F. Detyra e çelësit sekret në pajisjen U2F është të dekriptojë skedarin sekret të çelësit në disk kur çelësi i kriptimit aktivizohet.
Gjithashtu, si faktor të dytë, mund të ofroni një frazëkalim për çelësat tuaj.
Çelësi i qendrës residente është një tjetër tip i çelësit -sk të gjeneruar që mbështetet nga OpenSSH. Me këtë qasje, skedari i çelësit ruhet në pajisjen U2F dhe ju lejon ta keni atë me çelësin e kriptimit kur të nevojitet. Të krijoni një çelës të qendrës residente mund ta bëni me komandën:
$ ssh-keygen -t ecdsa-sk -O resident -f ~/.ssh/id_ecdsa_skMë pas, për të rikthyer skedarin e çelësit përsëri në memorje në pajisjen e re, vendosni çelësin e kriptimit dhe ekzekutoni komandën:
$ ssh-add -KKur lidheni me hostin, do t'ju duhet ende të aktivizoni çelësin e kriptimit.
- Të përdorni PIV+PKCS11 dhe Yubikey. Për t'u lidhur me pajisjet me versione më të vjetra SSHD duke përdorur çelësin e kriptimit do të kërkohet një qasje tjetër. Në Yubico ka një udhëzues për përdorimin e U2F+SSH me PIV/PKCS11 (anglisht). Kjo nuk është e njëjtë me FIDO U2F, dhe ndonëse metodologia funksionon, kërkon shumë punë për të kuptuar se çfarë magjie e drejton atë.
- Të aplikoni agentin e përdoruesit yubikey-agent ssh. Filippo ValSorda shkroi një agent SSH për Yubikeys. Ai është i ri dhe përmban pak funksione.
- Të përdorni Touch ID dhe sekey. Sekey është një agent SSH me burim të hapur, ai ruan çelësat sekretë në një enklav të sigurt të Mac-it dhe lejon përdorimin e Touch ID për funksionin e qasjes.
- Të përdorni Single Sign On SSH. Kam shkruar një udhëzuese për ndihmën në konfigurimin e këtij mënyre (anglisht). Një nga përfitimet e single sign on SSH është mundësia për të aktivizuar politikat e sigurisë nga ofruesi juaj i identitetit — duke përfshirë mbështetje për autentikimin me shumë faktorë (MFA).
Përdorimi i sigurt i agent forwarding
Në SSH, agent forwarding lejon që nodi i largët të ketë qasje në agentin SSH të pajisjes suaj lokale. Kur përdorni SSH me agent forwarding të aktivizuar (zakonisht përmes ssh -A), në lidhje do të ketë dy kanale: sesioni juaj interaktiv dhe kanali për agent forwarding. Përmes këtij kanali, një socket Unix, i krijuar nga agjenti lokal SSH, lidhet me nodin e largët. Ky është një metodë rrezikshme, pasi përdoruesi me qasje root në pajisjen e largët mund të ketë qasje në agentin tuaj lokal SSH dhe potencialisht të falsifikojë identitetin tuaj në rrjet. Duke përdorur agjentin standard SSH nga Open SSH, as nuk do të dinit se ndodhi kjo. Prania e një çelësi U2F (ose Sekey) do t'ju ndihmojë të bllokoni efektivisht përpjekjet për të shfrytëzuar agentin tuaj SSH nga jashtë.
Edhe me këtë masë paraprake, do të ishte një ide e mirë ta përdorni agent forwarding sa më pak të jetë e mundur. Mos e përdorni në çdo sesion — përdorni agent forwarding vetëm kur jeni të sigurt se është e nevojshme për sesionin aktual.
Dalja nga sesioni i bllokuar
Ndërprerja e rrjetit, sjellja e padëshiruar e programeve, ose një sekuencë komandash që bllokon hyrjen nga tastiera — të gjitha këto janë arsye të mundshme për ndërprerjen e sesionit SSH.
Mund të dilni nga një sesion të bllokuar në disa mënyra:
- Dalja automatikisht kur ndodh një ndërprerje rrjeti. Në skedarin tuaj .ssh/config duhet të shtoni sa vijon:
ServerAliveInterval 5 ServerAliveCountMax 1ssh do të dërgojë një echo në nodin e largët çdo ServerAliveInterval sekonda për të kontrolluar lidhjen. Nëse më shumë se ServerAliveCountMax echo nuk merr përgjigje, ssh do ta përfundojë lidhjen për shkak të skadimit të kohës dhe do të dalë nga sesioni.
- Dilni nga sesioni. ssh si standard përdor simbolin ~ (tilde) si komandë. Komanda ~. mbyll lidhjen e hapur dhe të rikthen në terminal. (Sekuencat komandash mund të shkruhen vetëm në një rresht të ri.) Komanda ~? do të shfaqë një listë të plotë të komandeve të disponueshme në këtë sesion. Kini parasysh, që për të shkruar simbolin ~ në tastierat ndërkombëtare, mund të kërkohet të shtypni çelësin ~ dy herë.
Pse ndodhin në përgjithësi sesionet e ngrira? Në kohët kur u krijua interneti, kompjuterët rrallë lëviznin nga një vend në një tjetër. Kur përdorni laptopët dhe kaloni midis disa rrjeteve WiFi IPv4, adresa juaj IP ndryshon. Duke qenë se SSH mbështetet në lidhjet TCP, dhe ato, nga ana e tyre, mbështeten në një pikë fundore me një adresë IP stabile, sa herë që kaloni midis rrjeteve, lidhjet tuaja SSH humbasin handle-in e soketit dhe në të vërtetë humbasin. Kur ndryshon adresa juaj IP, stoku juaj kërkon kohë për të zbuluar humbjen e handle-it. Kur ndodhin probleme rrjetesh, ne nuk duam që një prej nyjeve në lidhjen TCP ta ndërpresë atë shumë herët. Prandaj, protokolli do të përpiqet të dërgojë të dhënat disa herë përpara se të dorëzohet. Ndërkohë, në terminalin tuaj, sesioni do të duket si i ngrirë. IPv6 shton disa veçori të lidhura me lëvizshmërinë, të cilat i japin mundësinë pajisjes të mbajë adresën e saj shtëpiake gjatë ndërrimit të rrjetit. Ndoshta një ditë, kjo nuk do të jetë më një problem i tillë.
Si të mbani një terminal të përhershëm të hapur në një host të largët
Ka dy mënyra të ndryshme për të mbajtur lidhjen gjatë kalimeve midis rrjeteve të ndryshme ose kur dëshironi të shkëputeni për një kohë të shkurtër.
1. Përdorni ose
Nëse ju nevojitet vërtet një lidhje që nuk ndërpritet, madje edhe kur kaloni midis rrjeteve, përdorni Mosh. Kjo është një shell e sigurt, e cila së pari përdor një dorëzim SSH, dhe pastaj kalon në kanalin e saj të enkriptuar për gjithë kohëzgjatjen e sesionit. Kështu Mosh krijon një kanal të veçantë, shumë të qëndrueshëm dhe të sigurt, i cili është në gjendje të përballojë ndërprerjet e internetit, ndërrimin e adresës IP të laptopit tuaj, dhe shkeputjet e rënda të rrjetit, dhe shumë të tjera, të gjitha këto përmes magjisë së lidhjeve UDP, dhe gjithashtu të protokollit të sinkronizimit të përdorur nga Mosh.
Për të përdorur Mosh ju duhet ta instaloni atë si në klient ashtu edhe në server, dhe të hapni portet 60000-61000 për trafikun pa lidhje UPD në hostin tuaj të largët. Më pas, për të lidhur mjafton të përdorni mosh user@server.
Mosh operon në nivelin e ekranit dhe shtypjeve të çelësave, gjë që i jep atij disa përparësi në krahasim me dërgimin e një fluksi binar të standardit të hyrjes dhe daljes midis klientit dhe serverit SSH. Nëse na nevojitet vetëm të sinkronizojmë ekranet dhe shtypjet e çelësave, atëherë më vonë rikthimi i lidhjes së ndërprerë bëhet shumë më e lehtë. Ndërsa SSH do të mbajë dhe dërgojë gjithçka që ndodhi, Mosh mjafton të mbajë shtypjet e çelësave dhe të sinkronizojë foton e fundit të dritares së terminalit me klientin.
2. Përdorni tmux
Nëse dëshironi "të vini e të ikni kur t’ju dojë qejfi" dhe të mbani një sesion terminali në një host të largët, përdorni tmuxUnë e dua tmux dhe e përdor vazhdimisht. Nëse lidhja juaj SSH ndërpritet, për të u rikthyer në sesionin tmux, mjafton të ridhni dhe të shkruani tmux attach. Për më tepër, ajo ka disa funksione të mrekullueshme si skedat brenda-terminal dhe panelët, të ngjashme me skedat në terminalin iOS, dhe mundësinë për të ndarë terminalët me të tjerët.
Disa e duan të zbukurojnë tmux-in e tyre me Byobu, një paketë që përmirëson dukshëm përdorshmërinë e tmux-it dhe shton shumë kombinime çelësash. Byobu vjen me Ubuntu, dhe është e lehtë për t'u instaluar në Mac përmes Homebrew.
Ndarja e sesionit të terminalit me një mik
Ndonjëherë, kur jeni duke zgjidhur probleme të komplikuara në serverat tuaj, mund të keni dëshirë të ndani një sesion SSH me dikë që nuk është në të njëjtën dhomë me ju. tmux është ideale për këtë detyrë! Thjesht ndiqni disa hapa:
- Sigurohuni që tmux është instaluar në nodin tuaj të bastionit, ose në ndonjë server me të cilin planifikoni të punoni.
- Të dy duhet të lidhen nëpërmjet SSH në pajisjen, duke përdorur të njëjtin llogari.
- Njëri prej jush duhet të fillojë tmux për të nisur një sesion tmux.
- Tjetri duhet të fillojë tmux attach.
- Ja ku jeni! Keni një terminal të përbashkët.
Nëse dëshiron seanca më të sofistikuara shumëpërdoruese të tmux, provoni tmate, një fork i tmux që e thjeshton ndjeshëm bashkëpunimin në seancat e terminalit.
Burimi: habr.com
