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
