Natrag na blog

Konfiguriranje vašeg Linux poslužitelja za korištenje autentifikacije temeljene na SSH ključevima

Konfiguriranje vašeg Linux poslužitelja za korištenje autentifikacije temeljene na SSH ključevima

SSH na Linux poslužitelju

SSH, poznat i kao secure shell, protokol je koji se može koristiti za povezivanje i komunikaciju s poslužiteljem. Možete se povezati na svoj Linux poslužitelj za terminalsku sesiju pomoću ovog šifriranog protokola. Ako koristite OpenSSH poslužitelj, prvenstveno postoje dva različita načina na koje možete proći kroz proces autentifikacije. Prvi je vaša standardna autentifikacija temeljena na lozinki. Ovdje jednostavno koristite svoje korisničko ime i lozinku za pristup svom računu. Drugi način je postavljanje vašeg Linux poslužitelja za autentifikaciju temeljenu na SSH ključu.

U ovom vodiču usredotočit ćemo se na to kako možete konfigurirati svoj Linux poslužitelj da koristi SSH ključeve kao primarno sredstvo autentifikacije. Također ćemo raspraviti zašto se SSH ključevi često preferiraju u odnosu na uobičajeni mehanizam zaštite lozinkom.

Što su SSH ključevi?

SSH ključevi slični su vjerodajnicama koje biste koristili za prijavu na svoj račun na poslužitelju. Umjesto unosa korisničkog imena i lozinke, koristite par SSH ključeva, koji je također vjerodajnica za pristup. Iako su ključevi kriptografski, morate ih tretirati kao vjerodajnice za autentifikaciju jer je to svrha kojoj služe.

Tipični SSH ključ ima dva dijela: autorizirani ključ i identifikacijski ključ. Autorizirani ključ je javni ključ koji radi u kombinaciji s vašim privatnim identifikacijskim ključem kako bi vam omogućio pristup računu. Javni ključ nalazi se na udaljenom poslužitelju na koji se želite prijaviti pomoću SSH-a i ostaje u datoteci ~/.ssh/authorized_keys povezanoj s vašim korisničkim računom. Identifikacijski ključevi služe za provjeru vašeg identiteta kao ispravnog korisnika kako bi se osiguralo da samo ovlašteno osoblje može pristupiti određenom računu. Zajedno se ti ključevi nazivaju korisnički ključevi jer autentificiraju identitet korisnika. Nakon što poslužitelj uspije provjeriti oba ključa, pokreće se sesija ljuske kako bi se izvršile vaše naredbe.

Također imate ključeve računala i ključeve sesije. Protokol autentificira lokalno računalo, sustav ili poslužitelj pomoću ključa računala. Ključevi sesije pomažu u šifriranju toka podataka preko veze. To vašu sesiju i odgovarajuću aktivnost čini mnogo sigurnijom.

SSH ključevi u odnosu na zaštitu lozinkom

Glavni razlog zašto je autentifikacija temeljena na SSH ključu bolja od zaštite lozinkom je taj što vas potonja može ostaviti ranjivima na kibernetičke napade. Većina pojedinaca ne koristi iznimno složene lozinke kako bi ih mogli zapamtiti kada se trebaju prijaviti. Kao rezultat toga, to stvara područje ranjivosti. Mnogi napadači koriste grubu silu kako bi probili relativno jednostavnu lozinku i upali u račun. To je danas postalo osobito lako zbog automatizacije i naprednih tehnologija hakiranja.

S druge strane, SSH ključevi nude mnogo sigurniji način pristupa vašem računu. Kao što smo već spomenuli, ova metoda koristi javni ključ i privatni ključ za autentifikaciju identiteta klijenta. Iako javni ključ možete podijeliti s bilo kim, privatni ključ morate čuvati u tajnosti. Kada su upareni, javni ključ dešifrira privatni kako bi autentificirao vaš identitet. Nadalje, možete dodati sloj zaštite dodavanjem pristupne fraze povrh para ključeva. Više o pristupnoj frazi govorit ćemo kasnije u vodiču. Međutim, čak i bez pristupne fraze, vaš privatni SSH ključ čuva se iznimno sigurno na vašem lokalnom računalu. Mreža nikada ne može izravno pristupiti ključu, koji se nalazi u ograničenom direktoriju i nadopunjen je ograničenim dopuštenjima.

Generiranje SSH ključeva

Za generiranje vašeg para SSH ključeva, trebate pregledati OpenSSH paket alata i pronaći ssh-keygen. Ovo je poseban uslužni alat koji vam omogućuje generiranje para SSH ključeva veličine oko 2048 bita. Započnite pokretanjem ove naredbe:

To će pokrenuti sljedeću poruku:

Poruka će generirati privatni ključ pod nazivom id_rsa i javni ključ pod nazivom id_rsa.pub. U ovom trenutku možete odabrati gdje želite smjestiti ključ. Preporučujemo da zadržite zadano mjesto pritiskom na Enter. Zadržavanje zadanog mjesta osigurava da će poslužitelj automatski locirati i verificirati ključeve kad god se prijavite pomoću tog sustava. Zadano mjesto je direktorij ~/.ssh u početnom direktoriju. Ako radije želite odabrati drugo mjesto, upišite lokaciju.

Prepisivanje starijih SSH ključeva

Važno je napomenuti da na svom sustavu odjednom možete imati samo jedan par SSH kljeva. To znači da ako ste prethodno generirali i spremili par ključeva na sustav, vidjet ćete sljedeću poruku:

Kako biste nastavili s izradom i spremanjem novog para SSH ključeva, morate izbrisati postojeći. Zapamtite: ako prepišete ključ koji je već spremljen na disku, više ga nećete moći koristiti za autentifikaciju. Ovo je nepovratan proces, stoga budite apsolutno sigurni da želite prepisati stari par ključeva.

Postavljanje pristupne fraze

Nakon što postavite ključeve u direktorij, bit ćete upitani želite li unijeti pristupnu frazu:

Pristupna fraza je neobavezna - možete je preskočiti. Međutim, ona dodaje dodatni sloj sigurnosti za vaš privatni ključ tako što ga šifrira na disku. Ako odlučite koristiti pristupnu frazu, morat ćete je ispravno unijeti svaki put kada se pokušate prijaviti pomoću ovog para SSH ključeva:

Naposljetku, sada biste trebali imati svoje SSH ključeve koje možete koristiti za autentifikaciju klijenta.

Ugradnja vašeg SSH ključa u račun vašeg poslužitelja

Prije nego što upotrijebite ključeve za autentifikaciju, morate ugraditi javni ključ na udaljeni Linux poslužitelj. U nastavku ćemo vam pokazati kako to učiniti prilikom izrade vašeg CloudSigma poslužitelja. Prvo morate pronaći svoj javni SSH ključ kako biste ga mogli kopirati i zalijepiti. Ako ste koristili gore navedenu metodu za generiranje para SSH ključeva, javni ključ možete pronaći upisivanjem sljedećeg:

To će rezultirati pojavljivanjem javnog SSH ključa poput ovog:

Kopirajte ovu vrijednost kako biste je koristili kasnije. Prilikom izrade poslužitelja s CloudSigma, imate opciju dodavanja SSH ključa nakon što odaberete veličinu poslužitelja i sliku operativnog sustava:

single server creation

Kliknite na Dodaj i zalijepite ono što ste kopirali kako biste ugradili SSH ključ u svoj poslužitelj. Kao rezultat toga, svaki put kada pokrenete svoj poslužitelj, on će već imati umetnut SSH ključ.

Kopiranje javnog ključa na postojeći poslužitelj

Iako gornja metoda funkcionira pri stvaranju novog poslužitelja, je li moguće ugraditi SSH ključ u postojeći poslužitelj? Odgovor je da, i postoji više načina na koje to možete učiniti, ovisno o tome koje alate imate na raspolaganju.

Korištenje SSH-Copy-ID

Ovo je najjednostavniji i najlakši način za kopiranje javnog ključa. Sve što trebate je uslužni alat ssh-copy-id koji ćete pronaći u standardnom paketu OpenSSH. No prije nego što upotrijebite ovu metodu, provjerite je li na vašem poslužitelju aktivirana provjera autentičnosti temeljena na lozinki. Za kopiranje ključa primijenit ćete sintaksu ssh-copy-id, a zatim unijeti udaljeno računalo s kojim se želite povezati. Također ćete morati navesti račun na koji se povezujete. Morate imati pristup računu temeljen na lozinki kako bi se vaš ključ kopirao na ispravno mjesto. Naredba bi trebala izgledati ovako:

To može rezultirati porukom poput sljedeće koja će se pojaviti na vašem zaslonu:

To se obično događa ako se prvi put povezujete s tim određenim udaljenim računalom. To jednostavno znači da računalo nije uspjelo prepoznati host. Sve što trebate učiniti je upisati ‘yes’ i pritisnuti Enter. Nakon što to učinite, alat će skenirati račun kako bi pronašao vaš javni ključ. Nakon što ga locira, zatražit će od vas da unesete lozinku računa:

Zatim možete unijeti svoju lozinku. Kada se povežete sa svojim računom, alat će kopirati sadržaj ključa ~/.ssh/id_rsa.pub i zalijepiti ga pod authorized_keys u direktoriju ~/.ssh na vašem udaljenom računu. Tada ćete vidjeti sljedeću poruku:

To znači da ste uspješno kopirali svoj javni ključ na svoj postojeći udaljeni poslužitelj.

Korištenje SSH-a

Ovo je prilično konvencionalna metoda za kopiranje vašeg javnog ključa na poslužitelj. Poželjno ju je koristiti ako nemate pristup alatu ssh-copy-id. Ponovno, morate imati pristup svom računu temeljen na lozinki. Ono što zapravo radite jest postavljanje sadržaja javnog ključa kao izlaza na vašem računalu i njegov prijenos na udaljeni poslužitelj putem SSH veze uspostavljene između njih. Naredba koju ćete koristiti u tu svrhu trebala bi biti sljedeća:

Kao što vidite, odredili smo da ključ treba biti postavljen u datoteku authorized_keys unutar ~/.ssh direktorija na poslužitelju. Korištenje simbola >> također osigurava da dodajemo ključeve umjesto da ih prepisujemo. Nakon pokretanja naredbe, možda ćete vidjeti ovu poruku:

Slično prethodnoj poruci, to znači da računalo nije prepoznalo udaljeni poslužitelj. Upišite „yes” i pritisnite Enter za nastavak. Sada ćete unijeti lozinku računa:

Nakon što se lozinka provjeri, ključ će se kopirati u datoteku na vašem korisničkom računu kako je navedeno.

Ručno

U slučaju da nemate pristup svom računu na udaljenom poslužitelju putem lozinke, javni ključ možete kopirati ručno. Cilj je prenijeti vrijednost iz datoteke id_rsa.pub u datoteku ~/.ssh/authorized_keys na vašem udaljenom uređaju. Kao što već znamo, vrijednost ključa id_rsa.pub možemo prikazati pomoću ove naredbe:

Sadržaj vašeg javnog SSH ključa izgledat će ovako:

Zatim morate dobiti pristup svom računu na udaljenom poslužitelju na bilo koji dostupan način. Kada se prijavite, provjerite je li direktorij ~/.ssh prisutan. Ako nije, možete pokrenuti sljedeću naredbu da biste ga izradili:

Sada možete koristiti ovu naredbu za dodavanje sadržaja datoteke id_rsa.pub u datoteku authorized_keys u ovom ~/.ssh direktoriju na udaljenom poslužitelju:

Umjesto upisivanja „public_key_string” u ovoj naredbi, morat ćete unijeti sadržaj ključa koji ste prethodno izdvojili pokretanjem naredbe cat ~/.ssh/id_rsa.pub.

Autentifikacija pomoću vašeg SSH ključa

Sada možete jednostavno ući na svoj račun koristeći samo svoje SSH ključeve. To znači da vam više nije potrebna lozinka za pristup računu na poslužitelju. Koristit ćete vjerodajnice koje obično koristite za prijavu:

To može uzrokovati pojavljivanje sljedeće poruke:

Ne brinite ako vidite ovu poruku. To jednostavno znači da lokalni sustav ne može prepoznati udaljeni poslužitelj. To se obično događa ako se s poslužiteljem povezujete po prvi put. Sve što trebate učiniti je upisati ‘yes’ i pritisnuti Enter. Vraćajući se na neke od prethodnih koraka, ako ste primijenili lozinku (passphrase), ovdje ćete je morati unijeti. Ako niste, prijavit ćete se na svoj račun odmah nakon provjere autentičnosti SSH ključeva. To će pokrenuti otvaranje nove sesije ljuske (shell session) putem vašeg trenutnog računa na lokalnom računalu.

Kako onemogućiti provjeru autentičnosti lozinkom na vašem poslužitelju?

Sada kada znate kako postaviti svoje SSH ključeve, trebate onemogućiti provjeru autentičnosti lozinkom. Čak i ako možete koristiti SSH ključeve za provjeru autentičnosti, i dalje ste osjetljivi na napade grubom silom (brute force) ako je vaš postupak provjere autentičnosti lozinkom aktivan. Prije nego što onemogućite mehanizam provjere autentičnosti lozinkom, provjerite je li konfiguracija provjere autentičnosti temeljene na SSH ključu postavljena na root računu na poslužitelju ili da konfigurirani račun ima sudo pristup. Razlog za potvrdu ovoga je osigurati da zadržite administrativni pristup računu čak i kada su lozinke onemogućene. Sada možete koristiti ovaj SSH ključ za prijavu na svoj račun poslužitelja. Sljedeći korak je otvaranje konfiguracijske datoteke SSH daemona:

Ovdje trebate potražiti sljedeću direktivu:

Trebate odkomentirati ovaj redak i promijeniti vrijednost u ‘no’, kako slijedi:

Time ćete onemogućiti provjeru autentičnosti temeljenu na lozinki. Jednostavno spremite datoteku i zatvorite je kada završite. Na kraju, trebate ponovno pokrenuti svoj uređaj kako biste primijenili promjene. Ako ste korisnik Ubuntu ili Debian uređaja, također možete koristiti sljedeću naredbu za onemogućavanje unosa temeljenog na lozinki:

Kako biste osigurali da vaš daemon, ili sshd, dopušta samo provjeru autentičnosti temeljenu na SSH-u na poslužitelju na CentOS ili Fedora strojevima, upotrijebite naredbu:

Zaključak

Nakon što dovršite sve ove korake, trebali biste imati konfiguriranu i pokrenutu provjeru autentičnosti temeljenu na SSH ključu na vašem poslužitelju. Sada možete biti sigurni da su vaši poslužitelji sigurni i zaštićeni!

Ugodan rad!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.