Nustatykite saugų be slaptažodžio prisijungimą prie nuotolinio Ubuntu serverio naudodami SSH raktus
SSH yra saugus kliento ir serverio tinklo protokolas, padedantis kliento kompiuteriui prisijungti ir susisiekti su nuotoliniu serveriu. SSH ryšys užtikrina, kad terminale įvestos komandos būtų siunčiamos į nuotolinį serverį šifruotu kanalu.
Yra dviejų tipų autentifikavimo mechanizmai, naudojami prisijungti prie nuotolinio serverio: slaptažodžiu pagrįstas autentifikavimas (linkęs į žiaurios jėgos atakas) ir SSH raktais pagrįstas autentifikavimas (kuris yra labai saugus).
Atliekant SSH raktu pagrįstą autentifikavimą, kliento kompiuteryje sugeneruojama raktų pora, vadinama viešuoju ir privačiuoju raktu. Šio viešojo rakto kopija pasiekiama nuotoliniame serveryje. Kai klientas serveriui siunčia prisijungimo užklausą, serveris sugeneruoja atsitiktinę eilutę ir užšifruoja ją naudodamas viešąjį raktą. Šią eilutę galima iššifruoti tik naudojant kliento kompiuteryje esantį privatų raktą. Šis metodas užtikrina, kad prie serverio galėtų prisijungti tik klientai, turintys privatųjį raktą.
Šiame vadove pamatysime, kaip nustatyti SSH raktus Ubuntu 20.04 LTS serveryje.
Pažiūrėkite, ar jūsų kompiuteryje yra SSH raktas
Norėdami patikrinti, ar jūsų kompiuteryje jau yra SSH raktų pora, įveskite šią komandą savo terminale.
ls -l ~/.ssh/id_*.pub
Jei grįš aukščiau pateikta komanda tokio failo ar katalogo nėra
arba atitikmenų nerasta
, tai reiškia, kad SSH raktų poros nėra.
Jei turite esamą SSH raktų porą, galite naudoti tą pačią raktų porą, kad pasiektumėte du nuotolinius serverius, arba taip pat galite sukurti kitą raktų porą kitu pavadinimu. Pereikime prie kito žingsnio ir pažiūrėkime, kaip abiem atvejais generuoti SSH raktus.
SSH raktų kūrimas kliento kompiuteryje
Norėdami sukurti naują SSH raktų porą savo kompiuteryje, įveskite komandą, kaip parodyta toliau.
ssh-keygen
Pagal numatytuosius nustatymus SSH raktai yra 2048 bitų. Norėdami užtikrinti didesnį saugumą, jei norite generuoti SSH raktus su didesniais bitais, naudokite šią komandą.
ssh-keygen -b 4096
Jei komanda vykdoma sėkmingai, ekrane pasirodys šis pranešimas.
generuoja viešą / privačią RSA raktų porą. Įveskite failą, kuriame norite išsaugoti raktą (/home/harshit/.ssh/id_rsa):
Dabar, jei jūsų kompiuteryje nėra SSH raktų poros, tiesiog paspauskite Įeikite
, bet jei turite esamą SSH raktą, išsaugokite raktą kitu failo pavadinimu, kaip parodyta toliau.
Įveskite failą, kuriame norite išsaugoti raktą (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx
Pakeiskite xxx
failo pavadinimo pabaigoje su atitinkamu pavadinimu, kaip parodyta toliau, ir paspauskite Įeikite
.
Įveskite failą, kuriame norite išsaugoti raktą (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1
Kitas raginimas jūsų paprašys įvesti savavališko ilgio slaptafrazę, tai užtikrins dviejų lygių saugumą jūsų įrenginyje.
Įveskite slaptafrazę (tuščia, jei slaptafrazės nėra): Įveskite tą pačią slaptafrazę dar kartą:
Įvedę šią slaptafrazę užtikrinsite, kad net jei asmuo gaus prieigą prie jūsų privataus rakto, jis negalės pasiekti jūsų nuotolinio serverio be šios slaptafrazės.
Kai visas procesas bus baigtas, ekrane pasirodys šis pranešimas.
SSH raktai buvo sukurti jūsų sistemoje. Dabar atėjo laikas nukopijuoti viešąjį raktą nuotoliniame serveryje.
Viešojo rakto kopijavimas į nuotolinį Ubuntu serverį
Lengviausias ir greičiausias būdas nukopijuoti viešąjį raktą į nuotolinį serverį yra naudoti ssh-copy-id
naudingumas. Bet jei ši priemonė jūsų kompiuteryje dėl kokios nors priežasties nepasiekiama, taip pat galite naudoti kitus šiame skyriuje pateiktus metodus.
Naudojant ssh-copy-id įrankį
The ssh-copy-id
Pagal numatytuosius nustatymus jūsų Ubuntu kompiuteryje yra paslaugų programa, kuri nukopijuoja viešąjį raktą iš jūsų įrenginio į atitinkamą nuotolinio Ubuntu įrenginio katalogą.
Norėdami nukopijuoti viešąjį ssh raktą, tiesiog įveskite komandą savo terminale, kaip parodyta toliau.
ssh-copy-id vartotojo vardas@hostname
Pakeiskite Vartotojo vardas
ir pagrindinio kompiuterio vardas
aukščiau pateiktoje komandoje su jūsų serverio vartotojo vardu ir pagrindinio kompiuterio pavadinimu.
Šis pranešimas pasirodys jūsų terminale, jei pirmą kartą jungiatės prie pagrindinio kompiuterio, įveskite taip
ir paspauskite Įeikite
.
Prieglobos „172.105.XX.XX (172.105.XX.XX)“ autentiškumo nustatyti nepavyko. ECDSA rakto piršto atspaudas yra xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx. Ar tikrai norite tęsti ryšį (taip/ne)? taip
Dabar ssh-copy-id
programa nuskaitys failą su pavadinimu id_rsa.pub
kuriame yra viešasis SSH raktas. Kai nuskaitymo procesas bus baigtas, jis paragins įvesti nuotolinio serverio slaptažodį, kaip parodyta toliau. Įveskite slaptažodį ir paspauskite Įeikite
.
/usr/bin/ssh-copy-id: INFORMACIJA: bandoma prisijungti naudojant naują (-us) raktą (-us), kad būtų galima išfiltruoti jau įdiegtus /usr/bin/ssh-copy-id: INFO: 1 raktas (-ai) ) liko įdiegti – jei būsite paraginti dabar, turite įdiegti naujus raktus [email protected] slaptažodį:
Pridėjus raktą, jūsų terminale kaip išvestis pasirodys šis pranešimas.
Pridėto (-ų) rakto (-ų) skaičius: 1 Dabar pabandykite prisijungti prie įrenginio naudodami: „ssh '[email protected]'“ ir patikrinkite, ar buvo pridėtas tik jūsų norimas raktas (-ai).
Jei kliento kompiuteryje turite kelis SSH raktus, norėdami nukopijuoti atitinkamą viešąjį raktą į nuotolinį kompiuterį, įveskite komandą pagal toliau pateiktą šabloną.
ssh-copy-id -i id_rsa_xxx.pub vartotojo vardas@host
💡 Patarimas
Nepamirškite įvesti .pub failo pavadinimo pabaigoje, kai renkate terminalą.
Viešojo rakto kopijavimas vamzdžių metodu
Įveskite šią komandą terminale if ssh-copy-id
naudingumo nėra. Ši komanda gali atrodyti šiek tiek ilgesnė, tačiau ji veikia tinkamai.
katė ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
Pakeiskite nuotolinis_vartotojo vardas
ir serverio_ip_adresas
su savo vartotojo vardu ir IP adresu.
Jei jūsų kompiuteryje yra keli SSH raktai, pakeiskite id_rsa.pub
su pasirinktu viešuoju SSH rakto failu. Pavyzdžiui, id_rsa_client_1.pub
.
Kai būsite paraginti, įveskite nuotolinio vartotojo slaptažodį ir paspauskite Įeikite
.
[email protected] slaptažodis:
Įvedę slaptažodį, id_rsa.pub
failas bus nukopijuotas į įgaliotieji_raktai
nuotolinio serverio failą.
Rankinis viešojo rakto kopijavimas
Naudokite šį metodą, kai neturite prieigos prie nuotolinės sistemos naudodami slaptažodžio autentifikavimą.
Atidaryk id_rsa.pub
failą naudodami katė
komanda terminale. Taip pat galite atidaryti jį naudodami teksto rengyklę, tikslas yra tik nukopijuoti failo turinį.
katė ~/.ssh/id_rsa.pub
Failo turinys atrodys taip, kaip parodyta toliau.
ssh-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6Hy / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH jūsų_vardas @ your_PC
Dabar prisijunkite prie nuotolinio serverio ir įklijuokite nukopijuotą turinį naudodami toliau pateiktą komandą. Pakeiskite virš_eilutės
su nukopijuotu turiniu.
echo above_string >> ~/.ssh/authorized_keys
Kelių SSH raktų konfigūravimas (neprivaloma)
Šis veiksmas skirtas žmonėms, kurie savo kliento kompiuteryje turi kelis SSH raktus. Praleiskite šį skyrių, jei turite tik vieną SSH rakto sąranką.
Norėdami valdyti kelis SSH raktus, dabar sukursime a konfig
failas viduje .ssh
katalogą naudodami toliau pateiktą komandą.
cd ~/.ssh vim config
Tipas i
Norėdami įjungti komandų režimą ir įvesti informaciją apie kelis pagrindinius kompiuterius, kaip parodyta šiame pavyzdyje:
Prieglobos nuotolinis ubuntu serveris HostName 172.105.XX.XX Vartotojo šakninis tapatybės failas ~/.ssh/id_rsa_client_1 Prieglobos nuotolinis ubuntu serveris HostName 172.106.XX.XX Vartotojo šakninis tapatybės failas ~/.ssh/id_rsa_client_
Panašiai įveskite informaciją apie kitus nuotolinius serverius ir jų raktus. Kai procesas bus baigtas, paspauskite Esc
ir :wq
išsaugoti ir išeiti.
Dabar tolesni procesai yra vienodi, kai kliento kompiuteryje yra vienas arba keli SSH raktai.
Prisijunkite prie nuotolinio serverio naudodami SSH raktus
Baigę viešojo rakto kopijavimo procesą, prisijunkite prie nuotolinio serverio įvesdami komandą, kaip parodyta toliau.
ssh nuotolinis_vartotojo_vardas@serverio_ip_adresas
Jei įvedėte slaptafrazę kurdami raktų porą, būsite paraginti ją įvesti. Pasibaigus autentifikavimo procesui, bus atidaryta nauja sesija.
Dabar sėkmingai sukonfigūravote SSH raktų autentifikavimą nuotoliniame serveryje. Tačiau slaptažodžiu pagrįstas autentifikavimas vis dar aktyvus jūsų serveryje, tai reiškia, kad jūsų nuotolinis serveris vis dar yra linkęs į žiaurios jėgos atakas.
Taigi dabar mes visiškai išjungsime slaptažodžiu pagrįstą prisijungimo mechanizmą iš savo nuotolinio serverio.
Išjungti slaptažodžiu pagrįstą prisijungimo mechanizmą
Prieš atlikdami bet kokius pakeitimus įsitikinkite, kad jūsų nuotolinės paskyros root vartotojas arba bet kuris sudo įgalintas vartotojas turi prieigą prie jūsų serverio naudodamas SSH raktu pagrįstą autentifikavimo sistemą. Šis veiksmas visiškai užblokuos arba išjungs slaptažodžiu pagrįstą prisijungimą, todėl labai svarbu, kad bent vieno vartotojo root privilegijos turėtų prieigą prie serverio per SSH raktą.
Prisijunkite prie nuotolinio Ubuntu serverio ir įveskite toliau pateiktą komandą.
sudo vim /etc/ssh/sshd_config
- Paspauskite
Esc
,/
ir įveskite „Password Authentication“ ir paspauskiteįveskite
. - Dabar paspauskite
i
ir pakeiskite reikšmę „Password Authentication yes“ į „Password Authentication no“. - Paspauskite
Esc
ir pakartokite aukščiau aprašytą procesą, kad surastumėte „ChallengeResponseAuthentication“, „UsePAM“ ir pakeiskite jų reikšmes įne
taip pat.
PasswordAuthentication no ChallengeResponseAuthentication ne UsePAM Nr
Kai visos reikšmės bus nustatytos į ne
, paspauskite Esc
, tipas :wq
ir pataikė įveskite
.
Norėdami suaktyvinti visus pakeitimus, paleiskite iš naujo ssh
paslauga naudojant toliau pateiktą komandą.
sudo systemctl iš naujo paleiskite ssh
Dabar atidarykite naują kompiuterio terminalo langą ir prieš uždarydami dabartinę sesiją patikrinkite, ar jūsų SSH rakto autentifikavimas veikia tinkamai.
Baigę patvirtinimo procesą, uždarykite visas vykdomas sesijas.
Dabar sėkmingai sukonfigūravome SSH raktu pagrįstą autentifikavimą mūsų Ubuntu 20.04 serveryje. Dabar niekas negali prisijungti prie jūsų serverio naudodamas slaptažodžiu pagrįstą prisijungimo mechanizmą.