- SSH leidžia užšifruotą nuotolinę prieigą ir saugų komandų vykdymą.
- Jis remiasi simetriniu šifravimu, raktų pagrindu veikiančiu autentifikavimu ir palaiko tinklo tuneliavimą.
- Jis pakeičia nesaugius protokolus, tokius kaip „Telnet“ ir FTP, ir turi daug galimų įgyvendinimo variantų.
- Prastas raktų valdymas gali pakenkti sistemos saugumui.

SSH tapo vienu iš pagrindinių saugaus nuotolinio administravimo protokolų įvairiuose tinkluose. Nuo duomenų centrų iki asmeninių kompiuterių – šis protokolas leidžia pasiekti kitas sistemas užšifruota forma, todėl tai nepakeičiama priemonė sistemų administratoriams ir kūrėjams.
Šiame straipsnyje mes išsamiai aptarsime SSH: kas tai yra, kam jis skirtas, kaip jis veikia, kokie jo pranašumai, palyginti su tokiomis alternatyvomis kaip Telnet ar SSL, dažniausiai naudojami, kaip jį konfigūruoti, kokie įrankiai jį palaiko, kokie trūkumai gali atsirasti, kai jis netinkamai valdomas, ir daug daugiau. Viskas paaiškinta aiškiai ir išsamiai, remiantis geriausiais šios srities šaltiniais.
Kas yra SSH ir iš kur jis atsirado?
SSH , trumpinys nuo „Secure Shell“ (arba „Secure Socket Shell“) , yra tinklo ryšio protokolas, leidžiantis saugiai jungtis tarp dviejų įrenginių per nepatikimą terpę, pvz., internetą. Jo pagrindinis tikslas – užtikrinti saugų būdą prisijungti, valdyti ir manipuliuoti nuotoliniais įrenginiais, niekam kitam neperimant duomenų.
SSH 1995 m. sukūrė suomių tyrėjas Tatu Ylönenas po slaptažodžio vagystės atakos jo universiteto tinkle. Jo tikslas buvo pakeisti pasenusį „Telnet“, kuris duomenis siuntė paprastu tekstu. Pirmoji versija, SSH-1, greitai išpopuliarėjo, tačiau turėjo trūkumų, kurie 2006 m. paskatino sukurti SSH-2 – dabartinę, saugesnę versiją, standartizuotą IETF.
Bėgant metams atsirado daug SSH diegimų; populiariausia yra „OpenSSH“ , sukurta „OpenBSD“ komandos ir dabar integruota į daugumą *nix sistemų, taip pat prieinama ir „Windows“.
Kaip veikia SSH protokolas
SSH naudoja daugiasluoksnį dizainą, kad užtikrintų konfidencialumą, autentifikavimą ir vientisumą tarp kliento ir serverio.
1. Transporto sluoksnis: užmezga saugų ryšį naudodamas šifravimą ir algoritmų derybas. Čia veikia raktų mainų metodai, tokie kaip Diffie-Hellman arba ECDH.
2. Vartotojo autentifikavimo sluoksnis: leidžia klientui įrodyti savo tapatybę serveriui naudojant slaptažodžius, viešuosius raktus arba net dviejų veiksnių autentifikavimą (2FA).
3. Ryšio sluoksnis: patvirtinus tapatybę, sukuriamas vienas užšifruotas tunelis, kuriame gali vykti keli subkanalai – interaktyvūs seansai, komandų vykdymas, failų perdavimas, tuneliai ir kt.
Numatytasis SSH prievadas yra 22 , bet galite jį pakeisti, kad pagerintumėte saugumą.
Dažniausiai SSH naudojami
SSH yra daug daugiau nei nuotolinis terminalas. Tipinės taikymo sritys:
- Saugi nuotolinė prieiga serveriams, maršrutizatoriams ar daiktų interneto įrenginiams.
- Failų perkėlimai per SCP arba SFTP, pakeisdami nesaugius protokolus, tokius kaip FTP.
- Užduočių automatizavimas su scenarijais, kurie prisijungia automatiškai naudodami raktais pagrįstus prisijungimus.
- Tuneliavimas arba prievadų peradresavimas nukreipti srautą per užšifruotą nuorodą.
- X11 persiuntimas paleisti nuotolines GUI programas vietoje.
Dėl šio universalumo SSH naudojamas visur – nuo debesų infrastruktūros iki kritinių įmonės sistemų.
Autentifikavimo metodai SSH ryšiu
SSH gali patvirtinti vartotojo tapatybę keliais būdais:
- Slaptažodis: tradicinis metodas, mažiau saugus, nes priklauso nuo slaptažodžio stiprumo.
- Viešieji / privatūs raktai: plačiai naudojamas. Jūs laikote savo privatųjį raktą lokaliai, o viešąjį raktą įkeliate į serverį. Jie surandami, kad būtų patvirtinta prieiga be slaptažodžio.
- Dviejų veiksnių autentifikavimas (2FA): sujungia raktą (arba slaptažodį) su dinaminiu prieigos raktu iš tokių įrankių kaip „Google Authenticator“ arba „YubiKey“.
Raktus galite apsaugoti slaptažodžio fraze ir valdyti juos naudodami agentus, tokius kaip „ssh-agent“ , kad nereikėtų kaskart įvesti slaptažodžio.
SSH naudojami šifravimo tipai
Visas SSH srautas yra apsaugotas stipriais šifrais. Dažniausiai naudojami yra šie:
- Simetrinis šifravimas: Po raktų apsikeitimo, bendras slaptasis kodas užšifruoja duomenis sesijos metu (pvz., AES arba ChaCha20).
- Asimetrinis šifravimas: naudojamas autentifikavimui ir pradiniam apsikeitimui raktais su viešųjų / privačių raktų poromis.
- Maiša: siekiant užtikrinti duomenų vientisumą naudojant tokius mechanizmus kaip HMAC-SHA2.
Tikslūs algoritmai priklauso nuo serverio ir kliento versijų ir gali būti sukonfigūruoti taip, kad būtų leidžiami tik stiprūs metodai.
Kas yra SSH tuneliavimas ir kodėl jis svarbus
SSH tuneliavimas (prievadų peradresavimas) leidžia nukreipti tinklo srautą per užšifruotą SSH ryšį, sukuriant saugią prieigą prie paslaugų, kurios paprastai būtų pažeidžiamos.
Yra trys tipai:
- Vietinis peradresavimas: nukreipia vietinius ryšius į nuotolinę paslaugą per SSH.
- Nuotolinis peradresavimas: atveria vietinę programą per nuotolinį SSH serverį.
- Dinaminis persiuntimas: nustato SOCKS tarpinį serverį, kuris nukreipia srautą į daugelį vietų – tai patogu saugiam naršymui.
Jūs netgi galite kurti paprastus VPN su tuneliais, nors juos reikia kruopščiai konfigūruoti.
Populiarūs SSH diegimai
Kiekvienai OS yra daug SSH klientų ir serverių:
- OpenSSH: Labiausiai paplitęs variantas – apima ssh, sshd, scp, sftp ir kt.; iš anksto įdiegta daugumoje „Linux“, „Unix“ ir „macOS“ sistemų.
- glaistas: gerai žinomas „Windows“ klientas (taip pat perkeltas į kitas OS).
- „WinSCP“: grafinis įrankis saugiam failų perdavimui (SCP/SFTP) sistemoje „Windows“.
- „Tectia SSH“: komercinis, įmonės lygio programų paketas iš „SSH Communications“, Tatu Ylöneno įmonės.
- Termiusas: kelių platformų klientas, skirtas staliniams ir mobiliesiems įrenginiams.
Konfigūracijos valdymo įrankiai, tokie kaip „Ansible“, atsarginių kopijų kūrimo scenarijai ir stebėjimo sistemos, taip pat naudoja SSH ryšį.
Pagrindiniai SSH ir Telnet skirtumai
Abu protokolai suteikia nuotolinę prieigą, tačiau su esminiais skirtumais:
- SSH šifruoja visą srautą; Telnet siunčia viską paprastu tekstu.
- SSH autentifikuoja tapatybes saugiai; „Telnet“ to nedaro.
- SSH palaiko kelis autentifikavimo metodus (raktai, slaptažodžiai, 2FA).
- SSH leidžia perduoti failus, tuneliavimas ir nuotolinis komandų vykdymas.
Dėl to „Telnet“ daugumoje šiuolaikinių aplinkų yra pasenęs , jį pakeitė SSH saugumas.
SSH ir SSL/TLS: trumpas palyginimas
Nors abu šifruoja duomenis, jie atlieka skirtingus tikslus:
- SSL/TLS naudojamas tokiose programose kaip HTTPS, Apsaugo transportavimo sluoksnį tarp naršyklės ir žiniatinklio serverio.
- SSH teikia interaktyvų terminalo ryšį orientuota į sistemų administravimą ir automatizavimą.
- TLS atveju paprastai autentifikuojamas tik serveris; SSH atveju abu Serveris ir klientas gali autentifikuotis naudodami raktus.
Trumpai tariant, TLS apsaugo tokias paslaugas kaip svetainės ar el. paštas, o SSH daugiausia dėmesio skiria tiesioginei vartotojo arba administratoriaus lygio sąveikai su kitomis sistemomis.
Rizika ir trūkumai, į kuriuos reikia atkreipti dėmesį naudojant SSH
Net ir patikimas SSH gali būti pavojingas, jei netinkamai valdomas:
- Prastas raktų valdymas: Be rotacijos ar atšaukimo, raktai gali suteikti neribotą prieigą prie svarbiausių sistemų.
- Atviri prievadai: ypač daiktų interneto įrenginiuose, gali būti sudarytos sąlygos neteisėtai prieigai.
- Aklai priimantys pagrindinių kompiuterių raktus: Praleidus patvirtinimą, gali būti sudarytos sąlygos MITM atakoms.
- Leidžiami tiesioginiai root prisijungimai: kelia didelę riziką, jei nėra derinama su papildomomis kontrolės priemonėmis, tokiomis kaip 2FA.
Todėl organizacijose labai svarbu nustatyti aiškią politiką, reguliarius auditus ir centralizuotą raktų porų valdymą – nepastebėtas raktas gali tapti slapta prieiga.
SSH pažeidžiamumų istorija
Kaip ir bet kuris protokolas, SSH per daugelį metų susidūrė su saugumo spragomis. Žymūs pavyzdžiai:
- SSH-1 pažeidžiamumai, kas dabar griežtai nerekomenduojama.
- A CRC-32 paketų įterpimo klaida ankstyvosiose versijose.
- Į 2023, Terapinų ataka išnaudojo CBC šifrų silpnybes „OpenSSH“, vėliau ištaisytas.
Nepaisant to, tinkamai sukonfigūruota SSH-2 sąranka bendruomenės vis dar laikoma labai saugia .
Tinkamas valdymas, nuolatiniai atnaujinimai ir griežta prieigos kontrolė yra būtini saugiam SSH naudojimui. Tinkamai naudojama SSH gali reikšti skirtumą tarp apsaugotos infrastruktūros ir tokios, kuri yra pažeidžiama atakų ar neteisėtos prieigos.