Truket e vogla SSH

Ky artikull përmban praktikat tona më të mira për përdorimin më efektiv të SSH. Në të do të mësoni se si të:

  • Shtoni një faktor të dytë në hyrjen SSH
  • Përdorni në mënyrë të sigurt përcjelljen e agjentit
  • Dilni nga një seancë SSH e ndërprerë
  • Mbani të hapur një terminal të vazhdueshëm
  • Ndani një seancë terminali në distancë me një mik (pa Zoom!)

Shtimi i një faktori të dytë në SSH tuaj

Ju mund të shtoni një faktor të dytë të vërtetimit në lidhjet tuaja SSH në pesë mënyra të ndryshme:

  1. Përditësoni OpenSSH tuaj dhe përdorni çelësin e enkriptimit. Në shkurt 2020, OpenSSH shtoi mbështetjen për çelësat e enkriptimit FIDO U2F (Universal Second Factor). Ky është një veçori e re e mrekullueshme, por ka një paralajmërim: vetëm ata klientë dhe serverë që janë përditësuar në OpenSSH 8.2 dhe më të lartë do të mund të përdorin çelësat e enkriptimit, pasi përditësimi i shkurtit prezanton lloje të reja çelësash për ta. Ekipi ssh –V ju mund të kontrolloni versionin e klientit të SSH dhe versionin e serverit me komandën nc [servername] 22

    Dy lloje të reja çelësash u shtuan në versionin e shkurtit - ecdsa-sk dhe ed25519-sk (së bashku me certifikatat përkatëse). Për të gjeneruar një skedar kyç, thjesht futni çelësin tuaj të enkriptimit dhe ekzekutoni komandën:
    $ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk

    Ai do të gjenerojë çelësa publikë dhe privatë dhe do t'i shoqërojë me pajisjen tuaj U2F. Puna e çelësit sekret në pajisjen U2F është të deshifrojë përshkruesin e çelësit sekret në disk kur aktivizohet çelësi i enkriptimit.

    Për më tepër, si një faktor dytësor, mund të jepni një frazë kalimi për çelësat tuaj.

    Çelësi rezident është një lloj tjetër i gjenerimit të çelësave -sk i mbështetur nga OpenSSH. Me këtë qasje, doreza ruhet në pajisjen U2F dhe ju lejon ta keni atë me çelësin e enkriptimit kur është e nevojshme. Ju mund të krijoni një çelës rezident me komandën:

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

    Më pas, për ta kthyer dorezën në memorie në pajisjen e re, ngjitni ç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. Lidhja me pajisjet me versione të mëparshme të SSHD duke përdorur një çelës enkriptimi do të kërkojë një qasje të ndryshme. Yubico ka një udhëzues për përdorimin e U2F+SSH me PIV/PKCS11. Kjo nuk është e njëjtë me FIDO U2F, dhe megjithëse metoda funksionon, duhet shumë punë për të kuptuar se çfarë magjie po e drejton atë.
  3. Aplikoni agjentin e personalizuar yubikey-agent ssh. Filippo Valsorda shkroi agjentin e SSH për Yubikeys. Është krejtësisht i ri dhe përmban karakteristika minimale.
  4. Përdorni Touch ID dhe çelësin e kërkimit. Sekey është një agjent SSH me burim të hapur që ruan çelësat privatë në një enklavë të sigurt në Mac dhe lejon që Touch ID të përdoret për funksionalitetin e aksesit.
  5. Përdorni Single Sign On SSH. Unë shkrova një tutorial për t'ju ndihmuar të vendosni këtë metodë. Një nga përfitimet e shenjës së vetme në SSH është aftësia për të përdorur politikat e sigurisë të ofruesit tuaj të identitetit - duke përfshirë mbështetjen për vërtetimin me shumë faktorë (MFA).

Përdorimi i sigurt i përcjelljes së agjentit

Përcjellja e agjentit SHH lejon një host në distancë të hyjë në agjentin SSH të pajisjes tuaj lokale. Kur përdorni SSH me transferimin e agjentit të aktivizuar (zakonisht nëpërmjet ssh -A), do të ketë dy kanale në lidhje: sesioni juaj interaktiv dhe kanali për përcjelljen e agjentit. Nëpërmjet këtij kanali, priza Unix e krijuar nga agjenti juaj lokal SSH lidhet me hostin në distancë. Kjo është një metodë e rrezikshme sepse një përdorues me qasje rrënjësore në pajisjen e largët mund të fitojë akses te agjenti juaj lokal SSH dhe potencialisht t'ju imitojë në internet. Duke përdorur agjentin standard SSH nga kompleti Open SSH, as që do ta dini se kjo ka ndodhur. Pasja e një çelësi U2F (ose Sekey) do t'ju ndihmojë të bllokoni në mënyrë efektive çdo përpjekje për të përdorur agjentin tuaj SSH nga jashtë.

Edhe me këtë masë paraprake, është një ide e mirë të përdoret sa më pak që të jetë e mundur transferimi i agjentëve. Nuk duhet ta përdorni për çdo seancë - përdorni transferimin e agjentit vetëm kur jeni të sigurt se është i nevojshëm për sesionin aktual.

Dalja nga një seancë e varur

Një ndërprerje e rrjetit, programe që sillen jashtë kontrollit ose një sekuencë ikjeje që bllokon hyrjen e tastierës janë të gjitha shkaqet e mundshme të përfundimit të një sesioni SSH.

Ka disa mënyra për të përfunduar një seancë të varur:

  1. Dil automatikisht kur rrjeti ndërpritet. Duhet të shtoni sa vijon në .ssh/config:
    ServerAliveInterval 5
    ServerAliveCountMax 1

    ssh do të dërgojë një jehonë te hosti i largët çdo sekonda ServerAliveInterval për të kontrolluar lidhjen. Nëse më shumë se jehona të ServerAliveCountMax nuk marrin një përgjigje, ssh do të përfundojë lidhjen dhe do të dalë nga sesioni.

  2. Dilni nga seanca. ssh si parazgjedhje përdor karakterin ~ (tilde) si karakterin e tij të kontrollit. Skuadra~. mbyll lidhjen e hapur dhe ju kthen përsëri në terminal. (Sekuencat e arratisjes mund të futen vetëm në një rresht të ri.) ~? do të shfaqë një listë të plotë të komandave të disponueshme në këtë sesion. Ju lutemi vini re se për të shtypur karakterin ~ në tastierat ndërkombëtare, mund t'ju duhet të shtypni dy herë tastin ~.

Pse ndodhin fare seancat e ngrira? Kur u krijua interneti, kompjuterët rrallë lëviznin nga një vend në tjetrin. Kur përdorni laptopë dhe kaloni midis rrjeteve të shumta IPv4 WiFi, adresa juaj IP ndryshon. Meqenëse SSH mbështetet në lidhjet TCP, të cilat nga ana e tyre mbështeten në një pikë fundore me një adresë IP të qëndrueshme, sa herë që kaloni midis rrjeteve, lidhjet tuaja SSH humbasin dorezën e prizës dhe në mënyrë efektive humbasin vetë. Kur adresa juaj IP ndryshon, duhet kohë që pirgja e rrjetit tuaj të zbulojë humbjen e dorezës. Kur ndodhin probleme të rrjetit, ne nuk duam që një nga nyjet në lidhjen TCP ta ndërpresë atë shumë herët. Prandaj, protokolli do të përpiqet të ridërgojë të dhënat disa herë të tjera përpara se të heqë dorë përfundimisht. Ndërkohë, në terminalin tuaj seanca do të shfaqet e ngrirë. IPv6 shton disa veçori të lidhura me lëvizshmërinë që lejojnë një pajisje të ruajë adresën e saj të shtëpisë ndërsa ndryshon rrjetet. Ndoshta një ditë ky nuk do të jetë një problem i tillë.

Si të mbani të hapur një terminal të vazhdueshëm në një host të largët

Ekzistojnë dy mënyra të ndryshme se si të ruani lidhjen tuaj kur lëvizni midis rrjeteve të ndryshme ose dëshironi të shkëputeni për një kohë.

1. Përfitoni mosh ose Terminali i përjetshëm

Nëse vërtet keni nevojë për një lidhje që nuk ndërpritet edhe kur kaloni midis rrjeteve, përdorni guaskën celulare Mosh. Kjo është një guaskë e sigurt që fillimisht përdor shtrëngimin e duarve SSH dhe më pas kalon në kanalin e vet të koduar për kohëzgjatjen e seancës. Kështu Mosh krijon një kanal të veçantë, shumë të qëndrueshëm dhe të sigurt që mund të përballojë ndërprerjet e internetit, ndryshimin e adresës IP të laptopit tuaj, ndërprerjet serioze të rrjetit dhe shumë më tepër, dhe e gjithë kjo falë magjisë së lidhjeve UDP, gjithashtu. si protokolli i sinkronizimit Mosh.

Për të përdorur Mosh, do t'ju duhet ta instaloni atë si në klient ashtu edhe në server dhe të hapni portat 60000-61000 për trafikun e palidhur UPD me hostin tuaj të largët. Në të ardhmen, për ta lidhur do të jetë e mjaftueshme për ta përdorur mosh user@server.

Mosh funksionon në nivelin e ekraneve dhe shtypjes së tasteve, gjë që i jep një sërë avantazhesh ndaj dërgimit të një rryme binar të hyrjes dhe daljes standarde midis klientit dhe serverit SSH. Nëse na duhet vetëm të sinkronizojmë ekranet dhe goditjet e tasteve, atëherë rivendosja e një lidhjeje të prishur më vonë bëhet shumë më e lehtë. Ndërsa SSH do të ruajë dhe do të dërgojë gjithçka që ka ndodhur, Mosh-it i duhet vetëm të kalojë në tastierë dhe të sinkronizojë kornizën e fundit të dritares së terminalit me klientin.

2. Përdorni tmux

Nëse dëshironi të "vini e shkoni si të doni" dhe të mbani një sesion terminal në një host të largët, përdorni multiplekser terminal tmux. Më pëlqen tmux dhe e përdor atë gjatë gjithë kohës. Nëse lidhja juaj SSH ndërpritet, atëherë për t'u kthyer në seancën tuaj tmux ju duhet vetëm të rilidheni dhe të hyni tmux attach. Për më tepër, ai ka veçori kaq të mrekullueshme si skedat dhe panelet brenda terminalit, të ngjashme me skedat në terminalin iOS dhe aftësinë për të ndarë terminalet me të tjerët.

Disa njerëzve u pëlqen ta përmirësojnë tmux-in e tyre me Byobu, një paketë që përmirëson ndjeshëm përdorshmërinë e tmux-it dhe shton shumë shkurtore të tastierës. Byobu vjen me Ubuntu, dhe është e lehtë për t'u instaluar në Mac nëpërmjet Homebrew.

Ndarja e një seance terminali në distancë me një mik

Ndonjëherë, kur korrigjoni problemet komplekse në serverët tuaj, mund të dëshironi të ndani një sesion SSH me dikë që nuk është në të njëjtën dhomë me ju. tmux është perfekt për këtë detyrë! Duhen vetëm disa hapa:

  1. Sigurohuni që tmux të jetë i instaluar në nyjen tuaj bastion, ose në çdo server me të cilin do të punoni.
  2. Ju të dy do të duhet të SSH në pajisje duke përdorur të njëjtën llogari.
  3. Njëri prej jush duhet të ekzekutojë tmux për të filluar një seancë tmux.
  4. Tjetri duhet të ekzekutojë tmux attach
  5. Voila! Ju keni një terminal të përbashkët.

Nëse dëshironi sesione më të sofistikuara tmux me shumë përdorues, provoni tmate, një grup tmux që i bën seancat e përbashkëta të terminalit shumë më të lehta.

Burimi: www.habr.com

Bleni një host të besueshëm për faqet me mbrojtje DDoS, serverë VPS VDS 🔥 Bleni hosting të besueshëm të faqeve të internetit me mbrojtje DDoS, servera VPS VDS | ProHoster