Späť na blog

Konfigurácia vášho Linux servera na používanie autentifikácie pomocou SSH kľúčov

Konfigurácia vášho Linux servera na používanie autentifikácie pomocou SSH kľúčov

SSH na Linux serveri

SSH, známy tiež ako secure shell, je protokol, ktorý sa dá použiť na pripojenie a komunikáciu so serverom. Môžete sa pripojiť k svojmu Linux serveru pre reláciu terminálu pomocou tohto šifrovaného protokolu. Ak používate OpenSSH server, existujú predovšetkým dva rôzne spôsoby, ako môžete prejsť procesom autentifikácie. Prvým je vaša štandardná autentifikácia na základe hesla. Tu jednoducho použijete svoje prihlasovacie údaje v podobe používateľského mena a hesla, aby ste získali prístup k svojmu účtu. Druhým spôsobom je nastavenie vášho Linux servera na autentifikáciu pomocou SSH kľúčov.

V tejto príručke sa zameriame na to, ako môžete nakonfigurovať svoj Linux server tak, aby používal SSH kľúče ako primárny spôsob autentifikácie. Budeme tiež diskutovať o tom, prečo sa SSH kľúče často uprednostňujú pred obvyklým mechanizmom ochrany heslom.

Čo sú SSH kľúče?

SSH kľúče sú podobné prihlasovacím údajom, ktoré by ste použili na prihlásenie do svojho účtu na serveri. Namiesto zadávania používateľského mena a hesla používate pár SSH kľúčov, ktorý je tiež prístupovým údajom. Hoci sú kľúče kryptografické, musíte s nimi zaobchádzať ako s autentifikačnými údajmi, keďže to je účel, ktorému slúžia.

Typický SSH kľúč má dve časti: autorizovaný kľúč a kľúč identity. Autorizovaný kľúč je verejný kľúč, ktorý funguje v kombinácii s vaším súkromným kľúčom identity, aby vám umožnil prístup k účtu. Verejný kľúč sa nachádza na vzdialenom serveri, do ktorého sa chcete prihlásiť pomocou SSH, a zostáva v súbore ~/.ssh/authorized_keys priradenom k vášmu používateľskému účtu. Kľúče identity slúžia na overenie vašej identity ako správneho používateľa, aby sa zabezpečilo, že k danému účtu bude mať prístup iba oprávnený personál. Spoločne sa tieto kľúče nazývajú používateľské kľúče, pretože autentifikujú identitu používateľa. Keď je server schopný overiť oba kľúče, spustí sa relácia shellu na vykonanie vašich príkazov.

Máte tiež hostiteľské kľúče a kľúče relácie. Protokol autentifikuje lokálny počítač, systém alebo server pomocou hostiteľského kľúča. Kľúče relácie pomáhajú šifrovať dátový tok cez pripojenie. Vďaka tomu je vaša relácia a príslušná aktivita oveľa bezpečnejšia a chránenejšia.

SSH kľúče namiesto ochrany heslom

Hlavným dôvodom, prečo je autentifikácia založená na SSH kľúčoch výhodnejšia ako ochrana heslom, je to, že tá druhá vás môže vystaviť kybernetickým útokom. Väčšina jednotlivcov nepoužíva extrémne zložité heslá, aby si ich zapamätali, keď sa potrebujú prihlásiť. V dôsledku toho vzniká zraniteľné miesto. Mnoho útočníkov využíva hrubú silu na prelomenie relatívne jednoduchého hesla a preniknutie do účtu. V dnešnej dobe je to obzvlášť jednoduché vďaka automatizácii a pokročilým hackerským technológiám.

SSH kľúče na druhej strane ponúkajú oveľa bezpečnejší spôsob prístupu k vášmu účtu. Ako sme už spomínali, táto metóda využíva verejný kľúč a súkromný kľúč na autentifikáciu identity klienta. Zatiaľ čo verejný kľúč môžete zdieľať s kýmkoľvek, súkromný kľúč musíte držať v tajnosti. Pri spárovaní verejný kľúč dešifruje súkromný, aby overil vašu identitu. Ochranu môžete ďalej vrstviť pridaním prístupovej frázy k páru kľúčov. O prístupovej fráze si povieme viac neskôr v tejto príručke. Avšak aj bez prístupovej frázy je váš súkromný SSH kľúč na vašom lokálnom počítači mimoriadne bezpečne uložený. Sieť nikdy nemá priamy prístup ku kľúču, ktorý sa nachádza v obmedzenom adresári a je doplnený o obmedzené oprávnenia.

Generovanie SSH kľúčov

Ak chcete vygenerovať svoj pár SSH kľúčov, musíte prejsť sadu nástrojov OpenSSH a nájsť ssh-keygen. Ide o špeciálny pomocný nástroj, ktorý vám umožňuje vygenerovať pár SSH kľúčov s veľkosťou približne 2048 bitov. Začnite spustením tohto príkazu:

Týmto sa zobrazí nasledujúca správa:

Táto správa vygeneruje súkromný kľúč s názvom id_rsa a verejný kľúč s názvom id_rsa.pub. V tomto momente si môžete vybrať, kam chcete kľúč umiestniť. Odporúčame ponechať predvolené umiestnenie stlačením klávesu Enter. Ponechanie predvoleného umiestnenia zabezpečí, že server automaticky vyhľadá a overí kľúče vždy, keď sa prihlásite pomocou tohto systému. Predvolené umiestnenie je adresár ~/.ssh v domovskom adresári. Ak uprednostňujete výber iného miesta, zadajte jeho umiestnenie.

Prepísanie starších kľúčov SSH

Je dôležité poznamenať, že v systéme môžete mať naraz iba jeden pár kľúčov SSH. To znamená, že ak ste v systéme predtým vygenerovali a uložili pár kľúčov, zobrazí sa nasledujúca správa:

Ak chcete pokračovať vo vytváraní a ukladaní nového páru kľúčov SSH, musíte odstrániť ten existujúci. Pamätajte: ak prepíšete kľúč, ktorý je už uložený na disku, nebudete ho môcť ďalej používať na účely autentifikácie. Toto je nezvratný proces, preto sa uistite, že ste si absolútne istí, že chcete starý pár kľúčov prepísať.

Nastavenie prístupovej frázy

Po nastavení kľúčov v adresári sa zobrazí otázka, či chcete zadať prístupovú frázu:

Prístupová fráza je voliteľná – môžete sa rozhodnúť ju preskočiť. Pridáva však ďalšiu vrstvu zabezpečenia pre váš súkromný kľúč tým, že ho zašifruje na disku. Ak sa rozhodnete použiť prístupovú frázu, budete ju musieť zadať správne pri každom pokuse o prihlásenie pomocou tohto páru kľúčov SSH:

Na záver by ste už mali mať svoje kľúče SSH, ktoré môžete použiť na autentifikáciu klienta.

Vloženie vášho kľúča SSH do vášho serverového účtu

Predtým, ako použijete kľúče na autentifikáciu, musíte vložiť verejný kľúč na vzdialený Linux server. Ďalej vám ukážeme, ako to urobiť pri vytváraní vášho servera CloudSigma. Najprv musíte nájsť svoj verejný kľúč SSH, aby ste ho mohli skopírovať a vložiť. Ak ste na vygenerovanie páru kľúčov SSH použili vyššie uvedenú metódu, verejný kľúč nájdete zadaním nasledujúceho príkazu:

To povedie k tomu, že sa verejný kľúč SSH zobrazí takto:

Skopírujte túto hodnotu pre neskoršie použitie. Pri vytváraní servera s CloudSigma máte možnosť pridať SSH kľúč po výbere veľkosti servera a obrazu operačného systému:

single server creation

Kliknite na Pridať a vložte to, čo ste skopírovali, aby ste vložili SSH kľúč do svojho servera. Výsledkom bude, že pri každom spustení servera už bude mať vložený SSH kľúč.

Kopírovanie verejného kľúča na existujúci server

Hoci vyššie uvedená metóda funguje pri vytváraní nového servera, je možné vložiť SSH kľúč do existujúceho servera? Odpoveď je áno a existuje viacero spôsobov, ako to urobiť, v závislosti od toho, aké nástroje máte k dispozícii.

Použitie SSH-Copy-ID

Toto je najjednoduchší a najľahší spôsob, ako skopírovať verejný kľúč. Všetko, čo potrebujete, je pomocný nástroj ssh-copy-id, ktorý nájdete v štandardnom balíku OpenSSH. Predtým, ako túto metódu použijete, sa však uistite, že na vašom serveri je aktivované overovanie na základe hesla. Ak chcete skopírovať kľúč, použijete syntax ssh-copy-id a potom zadáte vzdialeného hostiteľa, ku ktorému sa chcete pripojiť. Budete musieť špecifikovať aj účet, ku ktorému sa pripájate. K účtu musíte habt prístup na základe hesla, aby sa váš kľúč skopíroval na správne miesto. Príkaz by mal vyzerať takto:

Môže to viesť k tomu, že sa na vašej obrazovke zobrazí správa podobná tejto:

Toto sa zvyčajne stáva, ak sa k danému vzdialenému hostiteľovi pripájate prvýkrát. Znamená to jednoducho, že počítač hostiteľa nerozpoznal. Stačí napísať „yes“ a stlačiť Enter. Keď to urobíte, nástroj prehľadá účet, aby našiel váš verejný kľúč. Po jeho nájdení vás požiada o zadanie hesla k účtu:

Ďalej môžete zadať svoje heslo. Po pripojení k účtu nástroj skopíruje obsah kľúča ~/.ssh/id_rsa.pub a vloží ho do authorized_keys v adresári ~/.ssh vo vašom vzdialenom účte. Potom sa vám zobrazí nasledujúca správa:

To znamená, že ste úspešne skopírovali svoj verejný kľúč na existujúci vzdialený server.

Použitie SSH

Toto je pomerne konvenčný spôsob kopírovania verejného kľúča na server. Je lepšie ho použiť, ak nemáte prístup k nástroju ssh-copy-id. Opäť platí, že musíte mať prístup k účtu na základe hesla. V podstate robíte to, že obsah verejného kľúča vypíšete na svojom počítači a prenesiete ho na vzdialený server prostredníctvom vytvoreného SSH pripojenia. Príkaz, ktorý na tento účel použijete, by mal byť nasledujúci:

Ako môžete vidieť, špecifikovali sme, že kľúč by mal byť umiestnený v súbore authorized_keys v adresári ~/.ssh na serveri. Použitie symbolu >> tiež zaisťuje, že kľúče pridávame namiesto toho, aby sme ich prepisovali. Po spustení príkazu sa vám môže zobraziť táto správa:

Podobne ako pri predchádzajúcej správe, to znamená, že počítač nerozpoznal vzdialeného hostiteľa. Zadajte „yes“ a stlačte Enter, aby ste pokračovali. Teraz zadáte heslo k účtu:

Po overení hesla sa kľúč skopíruje do súboru vo vašom používateľskom účte, ako bolo určené.

Manuálne

V prípade, že nemáte prístup k svojmu účtu na vzdialenom serveri pomocou hesla, môžete verejný kľúč skopírovať manuálne. Cieľom je dostať hodnotu zo súboru id_rsa.pub do súboru ~/.ssh/authorized_keys na vašom vzdialenom zariadení. Ako už vieme, hodnotu kľúča id_rsa.pub môžeme zobraziť pomocou tohto príkazu:

Obsah vášho verejného kľúča SSH sa zobrazí takto:

Ďalej musíte získať prístup k svojmu účtu na vzdialenom hostiteľovi akýmikoľvek dostupnými prostriedkami. Po prihlásení skontrolujte, či existuje adresár ~/.ssh. Ak nie, môžete ho vytvoriť spustením nasledujúceho príkazu:

Teraz môžete použiť tento príkaz na pridanie obsahu súboru id_rsa.pub do súboru authorized_keys v tomto adresári ~/.ssh na vzdialenom serveri:

Namiesto zadania „public_key_string“ v tomto príkaze budete musieť zadať obsah kľúča, ktorý ste predtým získali spustením príkazu cat ~/.ssh/id_rsa.pub.

Autentifikácia pomocou vášho SSH kľúča

Teraz môžete jednoducho vstúpiť do svojho účtu iba pomocou svojich SSH kľúčov. To znamená, že na získanie prístupu k účtu na serveri už nepotrebujete heslo. Použijete prihlasovacie údaje, ktoré zvyčajne používate na prihlásenie:

Môže to spôsobiť zobrazenie nasledujúcej správy:

Ak sa vám zobrazí táto správa, neobávajte sa. Znamená to jednoducho, že lokálny systém nedokáže rozpoznať vzdialeného hostiteľa. K tomu zvyčajne dochádza, ak sa k hostiteľovi pripájate úplne prvýkrát. Stačí napísať „yes“ a stlačiť Enter. Ak sa vrátime k niektorým z predchádzajúcich krokov, ak ste použili prístupovú frázu (passphrase), tu ju budete musieť zadať. Ak nie, po overení SSH kľúčov sa ihneď prihlásite do svojho účtu. Tým sa spustí nová relácia shellu prostredníctvom vášho aktuálneho účtu na lokálnom počítači.

Ako zakázať overovanie heslom na vašom serveri?

Teraz, keď už viete, ako nastaviť SSH kľúče, musíte zakázať overovanie heslom. Aj keď môžete na overenie použiť SSH kľúče, stále ste zraniteľní voči útokom hrubou silou (brute force), ak je proces overovania heslom aktívny. Pred zakázaním mechanizmu overovania heslom sa uistite, že konfigurácia overovania založeného na SSH kľúčoch je nastavená pre účet root na serveri alebo že nakonfigurovaný účet má prístup sudo. Dôvodom na toto overenie je uistiť sa, že si zachováte administratívny prístup k účtu aj po zakázaní hesiel. Teraz môžete tento SSH kľúč použiť na prihlásenie do svojho účtu na serveri. Ďalším krokom je otvorenie konfiguračného súboru SSH démona:

Tu musíte vyhľadať nasledujúcu direktívu:

Tento riadok musíte odkomentovať a zmeniť hodnotu na „no“, a to nasledovne:

Týmto zakážete overovanie založené na hesle. Po dokončení súbor jednoducho uložte a zatvorte. Nakoniec musíte reštartovať zariadenie, aby sa zmeny prejavili. Ak používate zariadenie so systémom Ubuntu alebo Debian, na zakázanie vstupu pomocou hesla môžete použiť aj nasledujúci príkaz:

Aby ste sa uistili, že váš démon, alebo sshd, povoľuje iba overovanie založené na SSH na serveri na strojoch CentOS alebo Fedora, použite príkaz:

Záver

Po dokončení všetkých týchto krokov by ste mali mať na svojom serveri nakonfigurované a spustené overovanie založené na SSH kľúčoch.  Teraz si môžete byť istí, že vaše servery sú v bezpečí a chránené!

Príjemnú prácu s počítačom!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

Zatiaľ žiadne komentáre. Buďte prvý.