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:
|
1 |
ssh-keygen |
Týmto sa zobrazí nasledujúca správa:
|
1 2 |
Generovanie verejný/súkromný rsa kľúčpár. Zadajte súbor v ktorom pre uloženie kľúčakľúč (/home/username/.ssh/id_rsa): |
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:
|
1 2 |
/home/username/.ssh/id_rsa už existuje. Prepísať (y/n)? |
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:
|
1 2 3 |
Vytvorený adresár '/home/username/.ssh'. Zadajte prístupovú frázu (prázdne pre žiadnu prístupovú frázu): Zadajte rovnakú prístupovú frázu znova: |
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Vaša identifikácia bola been uložená v /home/username/.ssh/id_rsa. Váš verejný kľúč bol been uložený v /home/username/.ssh/id_rsa.pub. Odtlačok kľúča fingerprint je: a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host Obrázok randomart 'kľúča randomart image je: +--[ RSA 2048]----+ | ..o | | E o= . | | o. o | | .. | | ..S | | o o. | | =o.+. | |. =++.. | |o=++. | +-----------------+ |
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:
|
1 |
cat ~/.ssh/id_rsa.pub |
To povedie k tomu, že sa verejný kľúč SSH zobrazí takto:
|
1 |
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNqqi1mHLnryb1FdbePrSZQdmXRZxGZbo0gTfglysq6KMNUNY2VhzmYN9JYW39yNtjhVxqfW6ewc+eHiL+IRRM1P5ecDAaL3V0ou6ecSurU+t9DR4114mzNJ5SqNxMgiJzbXdhR+j55GjfXdk0FyzxM3a5qpVcGZEXiAzGzhHytUV51+YGnuLGaZ37nebh3UlYC+KJev4MYIVww0tWmY+9GniRSQlgLLUQZ+FcBUjaqhwqVqsHe4F/woW1IHe7mfm63GXyBavVc+llrEzRbMO111MogZUcoWDI9w7UIm8ZOTnhJsk7jhJzG2GpSXZHmly/a/buFaaFnmfZ4MYPkgJD username@example.com |
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:

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:
|
1 |
ssh-copy-id username@remote_host |
Môže to viesť k tomu, že sa na vašej obrazovke zobrazí správa podobná tejto:
|
1 2 3 |
The autenticitu of hostiteľa '111.111.11.111 (111.111.11.111)' nemožno't be overiť. ECDSA kľúča odtlačok je fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Ste si istý že chcete to pokračovať v pripájaní (áno/nie)? áno |
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:
|
1 2 3 |
/usr/bin/ssh-copy-id: INFO: pokus o to prihlásenie in s the novým kľúčom(s), na odfiltrovanie out všetkých, ktoré sú už nainštalované /usr/bin/ssh-copy-id: INFO: 1 kľúč(s) zostáva na be nainštalovanie -- ak budete are vyzvaní teraz it je to nainštalovanie the nových kľúčov username@111.111.11.111's heslo: |
Ď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:
|
1 2 3 |
Počet of kľúčov(s) pridaných: 1 Teraz skúste prihlásiť sa do the zariadenia, pomocou: "ssh 'username@111.111.11.111'" a skontrolujte, to aby ste sa uistili, že iba the kľúče(s) ktoré ste chceli, boli pridané. |
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:
|
1 |
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" |
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:
|
1 2 3 |
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes |
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:
|
1 |
username@111.111.11.111's password: |
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:
|
1 |
cat ~/.ssh/id_rsa.pub |
Obsah vášho verejného kľúča SSH sa zobrazí takto:
|
1 |
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test |
Ď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:
|
1 |
mkdir -p ~/.ssh |
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:
|
1 |
echo public_key_string >> ~/.ssh/authorized_keys |
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:
|
1 |
ssh username@remote_host |
Môže to spôsobiť zobrazenie nasledujúcej správy:
|
1 2 3 |
Autenticitu hostiteľa nemožno overiť '111.111.11.111 (111.111.11.111)' can't be established. Odtlačok kľúča ECDSA je fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Naozaj chcete pokračovať v pripájaníto continue connecting (yes/no)? yes |
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:
|
1 |
sudo nano /etc/ssh/sshd_config |
Tu musíte vyhľadať nasledujúcu direktívu:
|
1 |
PasswordAuthentication |
Tento riadok musíte odkomentovať a zmeniť hodnotu na „no“, a to nasledovne:
|
1 |
PasswordAuthentication no |
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:
|
1 |
sudo service ssh restart |
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:
|
1 |
sudo service sshd restart |
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!
Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.