Kaip pridėti SSH raktus prie Ubuntu 20.04

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-keygen -b 4096 Kai visas SSH rakto generavimo 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ą.