Truket e vogla SSH

Në këtë artikull, ne kemi mbledhur taktikat tona më të mira për të përdorur më efektivisht SSH. Nga ai do të mësoni se si:

  • TĂ« shtoni njĂ« faktor tĂ« dytĂ« nĂ« hyrjen SSH
  • TĂ« pĂ«rdorni sigurt forwarding agent
  • TĂ« dilni nga sesioni SSH qĂ« Ă«shtĂ« ngrirĂ«
  • TĂ« mbani njĂ« terminal tĂ« qĂ«ndrojĂ« tĂ« hapur
  • TĂ« ndani njĂ« sesion tĂ« pĂ«rbashkĂ«t terminali me njĂ« mik (pa Zoom!)

Shtimi i faktorit të dytë në SSH tuaj

Faktori i dytë i autentifikimit mund të shtohet në lidhjet tuaja SSH në pesë mënyra të ndryshme:

  1. PĂ«rmirĂ«soni OpenSSH tuaj dhe pĂ«rdorni çelĂ«sin e enkriptimit. NĂ« shkurt 2020, OpenSSH pĂ«rcaktoi mbĂ«shtetje pĂ«r çelĂ«sat e enkriptimit FIDO U2F (Faktori i DytĂ« Universal). Kjo Ă«shtĂ« njĂ« veçori e shkĂ«lqyer, por ka njĂ« nuancĂ«: vetĂ«m klientĂ«t dhe serverĂ«t qĂ« janĂ« pĂ«rmirĂ«suar nĂ« versionin OpenSSH 8.2 dhe mĂ« sipĂ«r do tĂ« kenĂ« mundĂ«si tĂ« pĂ«rdorin çelĂ«sat e enkriptimit, pasi pĂ«rditĂ«simi i shkurtit introdukton pĂ«r ta lloje tĂ« reja çelĂ«sash. Me komandĂ«n ssh –V mund tĂ« kontrolloni versionin e klientit SSH, ndĂ«rsa versionin e serverit - me komandĂ«n nc [servername] 22

    Versioni i shkurtit përmbante dy lloje të reja çelësash - ecdsa-sk dhe ed25519-sk (në përputhje me sertifikatat përkatëse). Për të gjeneruar skedarin e çelësit, mjafton të futni çelësin tuaj të enkriptimit dhe të ekzekutoni komandën:
    $ ssh-keygen -t ecdsa-sk -f ~/ .ssh / id_ecdsa_sk

    Kjo do të krijojë çelësa të hapur dhe të fshehtë dhe do t'i lidhë ato me pajisjen tuaj U2F. Detyra e çelësit të fshehtë në pajisjen U2F është të dekriptojë deshifruesin sekret të çelësit në disk kur çelësi i enkriptimit është aktivizuar.

    Për më tepër, si faktor të dytë, mund të ofroni një frazë kodifikimi për çelësat tuaj.

    ÇelĂ«si-rezident Ă«shtĂ« njĂ« tjetĂ«r tip i mbĂ«shtetur nga OpenSSH pĂ«r gjenerimin e çelĂ«save -sk-. NĂ« kĂ«tĂ« qasje, deshifruesi ruhet nĂ« pajisjen U2F dhe ju lejon ta keni atĂ« me çelĂ«sin e enkriptimit kur Ă«shtĂ« e nevojshme. TĂ« krijoni njĂ« çelĂ«s-rezident mund tĂ« bĂ«ni me komandĂ«n:

    $ ssh-keygen -t ecdsa-sk -O resident -f ~/ .ssh / id_ecdsa_sk

    Pastaj, për të rikthyer deshifruesin përsëri në kujtesë në pajisjen tuaj të re, futni çelësin e enkriptimit dhe ekzekutoni komandën:

    $ ssh-add -K

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

  2. Përdorni PIV+PKCS11 dhe Yubikey. Për t'u lidhur me pajisje me versione më të vjetra të SSHD duke përdorur çelësin e enkriptimit 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 megjithëse metoda funksionon, kërkon shumë punë për t'u kuptuar se cila magji e lëviz atë.
  3. Aplikoni agjentin ssh të përdoruesit yubikey-agent. Filippo Valsorda shpiku agjentin SSH për Yubikeys. Ai është krejt i ri dhe përmban minimum të funksioneve.
  4. Përdorni Touch ID dhe sekey. Sekey është një agjent SSH me kode të hapura, ai ruan çelësat sekretë në një enklavë të sigurt të Mac-it dhe lejon përdorimin e Touch ID për funksionin e aksesit.
  5. PĂ«rdorni Single Sign On SSH. Kam shkruar njĂ« udhĂ«zues pĂ«r tĂ« ndihmuar nĂ« konfigurimin e kĂ«tij mĂ«nyrĂ« (anglisht). NjĂ« nga avantazhet e single sign on SSH Ă«shtĂ« mundĂ«sia pĂ«r tĂ« aktivizuar politikat e sigurisĂ« sĂ« ofruesit tuaj tĂ« identiteteve — duke pĂ«rfshirĂ« mbĂ«shtetje pĂ«r verifikimin me shumĂ« faktorĂ« (MFA).

Përdorimi i sigurt i agent forwarding

Në SSH agent forwarding lejon një nod lokal të aksesojë agjentin SSH të pajisjes suaj lokale. Kur të përdorni SSH me agent forwarding të aktivizuar (zakonisht nëpërmjet ssh -A), do të ketë dy kanale në lidhje: seanca juaj interaktive dhe kanali për agent forwarding. Përmes këtij kanali, një Unix-socket i krijuar nga agjenti juaj lokal SSH lidhet me nodin e largët. Ky është një metodë e rrezikshme, pasi përdoruesi me qasje root në pajisjen e largët mund të aksesojë agjentin tuaj lokal të SSH dhe potencialisht të ndjehet si ju në rrjet. Duke përdorur agjentin standard SSH nga Open SSH, as që do ta dini se kjo ka ndodhur. Të paktën një çelës U2F (ose Sekey) do të ndihmojë për të bllokuar në mënyrë efektive çdo përpjekje për të shfrytëzuar agjentin tuaj SSH nga jashtë.

Edhe me njĂ« masĂ« tĂ« tillĂ« paraprake, do tĂ« ishte njĂ« ide e mirĂ« tĂ« pĂ«rdorni sa mĂ« pak agjent forwarding. Mos e pĂ«rdorni atĂ« nĂ« çdo seancĂ« — pĂ«rdoreni agjent forwarding vetĂ«m kur jeni tĂ« sigurt nĂ« nevojĂ«n e tij pĂ«r seancĂ«n aktuale.

Doli nga një seancë e ngrirë

Ndalimi i rrjetit, sjellja e pa kontrolluar e programeve ose njĂ« sekuencĂ« komanduese qĂ« bllokon hyrjen nga tastiera — tĂ« gjitha kĂ«to janĂ« arsye tĂ« mundshme pĂ«r ndĂ«rprerjen e njĂ« seance SSH.

Mund ta përfundoni një seancë të ngrirë në disa mënyra:

  1. Ndaloni automatikisht në rast të ndërprerjes së rrjetit. Në skedarin tuaj .ssh/config duhet të shtoni sa vijon:
    ServerAliveInterval 5
    ServerAliveCountMax 1

    ssh do të dërgojë echo në nodin e largët çdo ServerAliveInterval sekonda për të kontrolluar lidhjen. Nëse nuk merr përgjigje për më shumë se ServerAliveCountMax echo, ssh do ta përfundojë lidhjen për shkak të skadimit dhe do të doli nga seanca.

  2. Çlirimi nga sesioni. ssh, si parazgjedhje, pĂ«rdor simbolin ~ (tildĂ«) si komandues. Komanda ~. mbyll lidhjen e hapur dhe ju kthen prapa nĂ« terminal. (Sekuencat komandues mund tĂ« shkruhen vetĂ«m nĂ« njĂ« linjĂ« tĂ« re.) Komanda ~? do tĂ« tregojĂ« njĂ« listĂ« tĂ« plotĂ« tĂ« komandave tĂ« disponueshme nĂ« kĂ«tĂ« seancĂ«. Mbani parasysh se pĂ«r tĂ« shkruar simbolin ~ nĂ« tastierat ndĂ«rkombĂ«tare, mund tĂ« kĂ«rkohet tĂ« shtypni tastin ~ dy herĂ«.

Përse ndodhin sesionet e ngrira në radhë të parë? Në kohën e krijimit të internetit, kompjuterët rrallë lëviznin nga vendi në vend. Kur përdorni laptopë dhe kaloni ndërmjet disa rrjeteve WiFi IPv4, adresa juaj IP ndryshon. Duke qenë se SSH mbështetet në lidhje TCP, e ato, nga ana e tyre, mbështeten në një fundit të stabilizuar me një adresë IP të stabilizuar, sa herë që kaloni ndërmjet rrjeteve, lidhjet tuaja SSH humbasin descriptorin e soketëve dhe në fakt humbasin vetveten. Kur adresat IP ndryshojnë, sterku juaj rrjeti ka nevojë për kohë për të zbuluar humbjen e descriptorit. Kur ndodhin probleme rrjetesh, ne nuk duam që një nga nyjat në lidhjen TCP ta ndërpresë atë shumë shpejt. Prandaj protokolli do të përpiqet të dërgojë të dhënat përsëri disa herë para se të dorëzohet në fund. Në mes të kësaj, në terminalin tuaj, seanca do të duket se është ngjitur. IPv6 shton disa karakteristika të lidhura me mobilitetin, të cilat lejojnë pajisjen të ruajë adresën e saj të shtëpisë gjatë kalimit të rrjetit. Ndoshta, një ditë, kjo nuk do të jetë aq problematike.

Si të mbani një terminal të qëndrueshëm të hapur në një nyje të largët

Ka dy qasje të ndryshme për të ruajtur lidhjen kur kaloni ndërmjet rrjeteve të ndryshme ose dëshironi të çmoni për pak kohë.

1. Përdorni Mosh ose Terminali i Përjetshëm

Nëse keni vërtet nevojë për një lidhje që nuk ndërpritet, edhe kur kaloni ndërmjet rrjeteve, përdorni shell-in mobil Mosh. Kjo është një shell e sigurt që përdor fillimisht një dorëzim SSH dhe pastaj kalon në kanalin e saj të koduar për gjithë kohën 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, ndryshimin e IP-së së laptopit tuaj, ndërprerjet serioze të rrjetit dhe shumë më tepër, falë magjisë së lidhjeve UDP, si dhe protokollit të sinkronizimit të aplikuar nga Mosh.

Për të përdorur Mosh, do t'ju nevojitet ta instaloni atë si në klient, ashtu edhe në server, dhe të hapni portet 60000-61000 për trafik UDP të pa lidhur në host-in tuaj të largët. Më pas, për t'u lidhur, mjafton të përdorni mosh user@server.

Mosh operon në nivelin e ekranit dhe të shtypjeve të çelësit, gjë që i jep atij një sërë avantazhesh ndaj dërgimit të një rrjedhe binarësh të standardit të hyrjes dhe daljes midis klientit dhe serverit SSH. Nëse na nevojitet të sinkronizojmë vetëm ekranet dhe shtypjet e çelësit, atëherë rivendosja e lidhjes së ndërprerë bëhet shumë më e lehtë. Ndryshe nga SSH që do të bëjë buferin dhe dërgimin e gjithçkaje që ndodhi, Mosh mjafton të bëjë buferizimin e shtypjeve të çelësit dhe të sinkronizojë kadrin e fundit të dritares së terminalit me klientin.

2. Përdorni tmux

NĂ«se dĂ«shironi tĂ« "vini dhe tĂ« shkoni si t’ju dojĂ«" dhe tĂ« mbani njĂ« seancĂ« terminali nĂ« host-in e largĂ«t, pĂ«rdorni multiplexer-in e terminalit tmux. UnĂ« e adhuroj tmux dhe e pĂ«rdor atĂ« vazhdimisht. NĂ«se lidhja juaj SSH ndĂ«rpritet, mjafton tĂ« ripĂ«rshtatni dhe tĂ« shkruani tmux attach. PĂ«rveç kĂ«saj, ka funksione tĂ« mrekullueshme si tab-et dhe panelet brenda terminaleve, tĂ« ngjashme me tab-et nĂ« terminalin iOS, dhe mundĂ«sinĂ« pĂ«r tĂ« ndarĂ« terminalet me tĂ« tjerĂ«.

Disa njerëz e zbukurojnë tmux-in e tyre me Byobu, një paketë që përmirëson ndjeshëm përdorshmërinë e tmux dhe i shton shumë kombinime çelësish. Byobu ofrohet me Ubuntu, dhe është e lehtë të instalohet në Mac përmes Homebrew.

Ndara e sesionit të terminalit të largët me një mik

Ndonjëherë, kur shkoni për të riparuar probleme të komplikuara në serverët tuaj, mund të keni dëshirën të ndani një seancë SSH me dikë që nuk ndodhet në të njëjtën dhomë me ju. tmux është perfekt për këtë! Mjafton të bësh disa hapa të thjeshtë:

  1. Sigurohuni që tmux është instaluar në nodin tuaj bastion, ose në ndonjë server me të cilin do të punoni.
  2. Të dy ju duhet të lidhni përmes SSH me pajisjen, duke përdorur një llogari.
  3. Njëra nga ju duhet të nisë tmux për të filluar një seancë tmux.
  4. Tjetri duhet të nisë tmux attach.
  5. Voilà! Keni një terminal të përbashkët.

Nëse dëshironi seanca më të avancuara shumë përdoruese tmux, provoni tmate, një fork tmux që e bën shumë më të lehtë shkëmbimin e seancave të terminalit.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster