Truket e vogla të SSH

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:

  1. 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 –V mund tĂ« kontrolloni versionin e klientit SSH, ndĂ«rsa versionin e serverit mund ta kontrolloni me komandĂ«n nc [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_sk

    Kjo 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_sk

    Më 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 -K

    Kur lidheni me hostin, do t'ju duhet ende të aktivizoni çelësin e kriptimit.

  2. 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ë.
  3. 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.
  4. 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.
  5. 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:

  1. Dalja automatikisht kur ndodh një ndërprerje rrjeti. Në skedarin tuaj .ssh/config duhet të shtoni sa vijon:
    ServerAliveInterval 5
    ServerAliveCountMax 1

    ssh 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.

  2. 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 Mosh ose Terminalin e Përjetshëm

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 multiplexorin e terminalit. 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:

  1. Sigurohuni që tmux është instaluar në nodin tuaj të bastionit, ose në ndonjë server me të cilin planifikoni të punoni.
  2. Të dy duhet të lidhen nëpërmjet SSH në pajisjen, duke përdorur të njëjtin llogari.
  3. Njëri prej jush duhet të fillojë tmux për të nisur një sesion tmux.
  4. Tjetri duhet të fillojë tmux attach.
  5. 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

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster