SSH (Secure Shell) — tai kriptografinis tinklo protokolas, skirtas saugiam bendravimui su nutolusiais kompiuteriais per nesaugius tinklus. SSH užtikrina patikimą duomenų šifravimą ir saugų prisijungimą prie nuotolinio serverio.
Naudojant SSH galima valdyti nuotolinę sistemą per komandų eilutę bei saugiai perduoti failus tarp kompiuterių. Tai vienas pagrindinių įrankių sistemų administratoriui ir programuotojui dirbant su serveriais.
SSH raktas Windows, macOS ar Linux operacinėse sistemose yra vienas saugiausių autentifikacijos būdų jungiantis prie nutolusio serverio. Pagrindinis šio metodo privalumas — jį gerokai sunkiau nulaužti nei įprastą slaptažodį.
Norint užtikrinti saugų SSH prisijungimą, sugeneruojami du raktai:
~/.ssh/authorized_keys). Tai simbolių seka, kuri naudojama duomenims užšifruoti jungiantis prie serverio.Patikimumui rekomenduojama išjungti prisijungimą su slaptažodžiu ir leisti jungtis tik naudojant SSH raktus. Prisijungimo metu SSH klientas naudoja privatų raktą, kad patikrintų atitikimą su serveryje esančiu viešuoju raktu. Jei raktai sutampa, prisijungimas vyksta be slaptažodžio.
SSH raktų naudojimas užtikrina patikimą ir saugų ryšį tarp kliento ir serverio.
Norėdami pagerinti serverio saugumą, tinkamai sukonfigūruokite SSH prieigą. Dirbti tiesiogiai su root naudotoju nerekomenduojama, nes root turi neribotas teises sistemoje — tai didina klaidų, duomenų praradimo ir saugumo spragų riziką.
Rekomenduojama naudoti sudo administracinėms užduotims atlikti ir kasdienius darbus vykdyti su įprastu naudotoju, turinčiu administratoriaus teises. Siekiant saugumo, SSH prisijungimą root naudotojui reikėtų uždrausti ir leisti jungtis tik savo naudotojui su sudo teisėmis.
Jei reikia, root teises visada galima gauti su sudo arba rankiniu būdu persijungus į root naudotoją.
Prisijunkite prie serverio per SSH ir atnaujinkite paketų sąrašą:
sudo apt update && sudo apt upgrade
Visada atnaujinkite sistemą prieš diegdami naujas programas. Po atnaujinimo perkraukite serverį ir prisijunkite naudotojo paskyra.
Jei dėl kažkokių priežasčių neturite naudotojo, persijunkite į supernaudotoją (root):
sudo -su
Sukurkite naują naudotoją (vietoje tavo_vartotojas įrašykite norimą naudotojo vardą):
adduser tavo_vartotojas
Vadovaukitės ekrane pateikiamomis instrukcijomis nustatydami slaptažodį ir kitą informaciją.
Suteikite naujam naudotojui administratoriaus teises pridėdami jį į sudo grupę.
Klasikinis būdas per gpasswd:
gpasswd -a tavo_vartotojas sudo
Šiuolaikinis būdas per usermod:
usermod -aG sudo tavo_vartotojas
Abu būdai prideda naudotoją į sudo grupę ir duoda tą patį rezultatą. Skirtumas tas, kad gpasswd yra grupių valdymo įrankis, o usermod — naudotojų valdymo įrankis. usermod -aG laikomas standartiniu būdu ir dažniau naudojamas šiuolaikiniuose vadovuose.
Persijunkite į naują naudotoją:
su - tavo_vartotojas
SSH (Secure Shell) raktų poros generavimas yra svarbus žingsnis siekiant užtikrinti saugų ir autentišką prisijungimą prie nutolusio serverio. Raktai kuriami jūsų kompiuteryje ir naudojami identitetui patvirtinti jungiantis prie serverio.
Norėdami generuoti raktus Linux ir macOS sistemose, atidarykite terminalą. Windows naudotojai gali naudoti PowerShell arba WSL.
Įveskite vieną iš šių komandų SSH raktų porai sugeneruoti (vietoje [email protected] įrašykite savo el. pašto adresą):
ssh-keygen -t ed25519 -C "[email protected]"
Galima generuoti raktus ir be el. pašto:
ssh-keygen -t ed25519
Didesniam suderinamumui su senesnėmis sistemomis galite naudoti RSA (tai mažiau saugu):
ssh-keygen -t rsa -b 4096
Po komandos įvedimo būsite paprašyti nurodyti raktų saugojimo vietą (numatytoji — ~/.ssh katalogas). Spauskite Enter, jei tinka numatyta vieta, arba nurodykite savo.
Kitas žingsnis — nustatyti slaptažodį (passphrase) papildomam saugumui. Tai nėra privaloma, bet rekomenduojama.
Po generavimo kataloge ~/.ssh atsiras du failai: viešasis raktas (pvz., id_ed25519.pub arba id_rsa.pub) ir privatus raktas (pvz., id_ed25519 arba id_rsa). Viešąjį raktą perduokite serverio administratoriui arba įkelkite į serverį, o privatų raktą laikykite tik savo kompiuteryje ir niekam neperduokite.
Dabar turite SSH raktų porą, kurią galite naudoti saugiam prisijungimui prie serverio.
Daugiau informacijos apie SSH raktų generavimą ir naudojimą:
How-To Geek: How to Generate SSH Keys in Windows 10 and Windows 11
SSH Academy: ssh-keygen
Dabar reikia nukopijuoti viešąjį raktą id_rsa.pub į virtualią mašiną, kad galėtumėte prisijungti prie jos per SSH saugiai. Pirmiausia prisijunkite prie savo virtualios mašinos per SSH komanda:
ssh your_user@ip
Vietoje your_user@ip įrašykite savo naudotojo vardą ir virtualios mašinos IP adresą. Pavyzdžiui:
ssh [email protected]
Prisijungę būsite savo naudotojo namų kataloge. Norėdami patikrinti katalogo turinį, naudokite:
ls -la
Čia turėtų būti katalogas .ssh. Jei jo nėra, sukurkite komandą:
mkdir .ssh
Taškas katalogo pradžioje (.ssh) reiškia, kad katalogas yra paslėptas.

Nustatykite griežtas prieigos teises prie .ssh katalogo:
chmod 700 .ssh
Ši komanda leidžia pasiekti katalogą tik jo savininkui.
Norint nustatyti SSH prisijungimą su raktu virtualioje mašinoje, reikia sukurti (arba atidaryti, jei jau egzistuoja) authorized_keys failą savo naudotojo .ssh kataloge. Naudokite tekstinį redaktorių nano:
nano .ssh/authorized_keys
Dabar savo kompiuteryje atidarykite viešojo rakto failą. Įveskite vieną iš šių komandų pagal savo operacinę sistemą:
cat .ssh/id_rsa.pub — Linux, macOS ir naujesnės Windows su WSL.get-content .ssh/id_rsa.pub — Windows 7/8 (be WSL).Taip pat galite atidaryti id_rsa.pub failą bet kokiu tekstiniu redaktoriumi ir nukopijuoti jo turinį.
Nukopijuokite viešojo rakto turinį ir įklijuokite jį į authorized_keys failą virtualioje mašinoje.
Norėdami išsaugoti pakeitimus nano redaktoriuje, paspauskite Ctrl+O (išsaugoti), tada Enter patvirtinimui. Norėdami išeiti — Ctrl+X.
Tada nustatykite tinkamus authorized_keys failo leidimus:
chmod 644 .ssh/authorized_keys
Teisingi prieigos leidimai būtini, kad SSH autentifikacija veiktų tinkamai.
Yra patogus būdas nukopijuoti viešąjį raktą į serverį — naudojant komandą ssh-copy-id. Ši priemonė automatiškai nukopijuoja viešąjį SSH raktą į failą ~/.ssh/authorized_keys nutolusiame serveryje.
Pagrindinis sintaksė:
ssh-copy-id -i ~/.ssh/jūsų_raktas.pub user@server
Nenurodžius -i, ssh-copy-id pagal nutylėjimą suras ir nukopijuos pagrindinį viešąjį raktą (~/.ssh/id_rsa.pub, id_ed25519.pub, id_ecdsa.pub ir pan.).
Kaip veikia ssh-copy-id:
~/.ssh/..pub failą (dažniausiai id_rsa.pub).~/.ssh/authorized_keys serveryje (naudotojo paskyroje).Panaudojus ssh-copy-id galėsite jungtis prie serverio per SSH be slaptažodžio.
Jei raktas sukurtas kitu pavadinimu (pvz., ssh-keygen -f ~/.ssh/my_custom_key), būtinai jį nurodykite:
ssh-copy-id -i ~/.ssh/my_custom_key.pub user@server
Santrauka:
~/.ssh/id_rsa.pub.~/.ssh/authorized_keys serveryje.Jei įdiegėte savo SSH viešąjį raktą į authorized_keys failą, galėsite prisijungti prie serverio be slaptažodžio. Tačiau visiškam saugumui rekomenduojama visiškai išjungti prisijungimą su slaptažodžiu. Štai kaip tai padaryti:
sudo nano /etc/ssh/sshd_config
Port ir įrašykite keturių skaitmenų skaičių (didesnį nei 1024), pavyzdžiui:
Port 2222
Tai sumažins automatizuotų atakų prieš standartinį 22 prievadą tikimybę.
PermitRootLogin eilutę ir pakeiskite į:
PermitRootLogin no
Taip padidinsite saugumą neleisdami jungtis tiesiogiai root vartotojui.
PasswordAuthentication eilutę ir įrašykite:
PasswordAuthentication no
Po šio nustatymo prisijungti bus galima tik naudojant SSH raktus.
sudo service ssh restart
arba perkraukite serverį:
sudo reboot

Svarbu: Prieš visiškai išjungdami prisijungimą su slaptažodžiu, įsitikinkite, kad galite prisijungti su SSH raktu ir per naują prievadą. Jei iškyla problemų, visada galite pasiekti virtualios mašinos konsolę per VirtualBox ir ištaisyti SSH konfigūraciją.
Po SSH konfigūracijos pakeitimų prisijungimas per standartinį prievadą nebebus įmanomas:
ssh [email protected]

Dabar prisijungiant būtina nurodyti naują prievadą (pvz., 2222):
ssh [email protected] -p 2222

Jei prisijungimas per naują prievadą veikia — viskas atlikta teisingai. Sveikiname, jūsų serveris tapo saugesnis!
Jei turite klausimų ar reikia pagalbos — drąsiai kreipkitės.