Ako pridať kľúče SSH na Ubuntu 20.04

Nastavte si bezpečné prihlásenie bez hesla na váš vzdialený server Ubuntu pomocou kľúčov SSH

SSH je bezpečný sieťový protokol klient-server, ktorý pomáha klientskemu počítaču pripojiť sa a komunikovať so vzdialeným serverom. SSH pripojenie zaisťuje, že príkazy zadané v termináli sa odosielajú na vzdialený server cez šifrovaný kanál.

Na pripojenie k vzdialenému serveru sa používajú dva typy autentifikačných mechanizmov, autentifikácia na základe hesla (náchylná na útoky hrubou silou) a autentifikácia založená na kľúčoch SSH (ktorá je veľmi bezpečná).

Pri autentifikácii založenej na kľúči SSH sa na klientskom počítači vygeneruje pár kľúčov, ktorý sa nazýva verejný kľúč a súkromný kľúč. Kópia tohto verejného kľúča je sprístupnená na vzdialenom serveri. Keď klient odošle serveru požiadavku na pripojenie, server vygeneruje náhodný reťazec a zašifruje ho pomocou verejného kľúča. Tento reťazec je možné dešifrovať iba pomocou súkromného kľúča dostupného na klientskom počítači. Táto metóda zaisťuje, že k serveru môžu pristupovať iba klienti, ktorí obsahujú súkromný kľúč.

V tejto príručke uvidíme, ako nastaviť kľúče SSH na serveri Ubuntu 20.04 LTS.

Zistite, či máte na svojom počítači nejaký existujúci kľúč SSH

Ak chcete skontrolovať, či už na vašom počítači existuje pár kľúčov SSH, zadajte tento príkaz do svojho terminálu.

ls -l ~/.ssh/id_*.pub

Ak sa vyššie uvedený príkaz vráti Súbor alebo adresár neexistuje alebo žiadne zhody nenájdené, potom to znamená, že pár kľúčov SSH neexistuje.

Ak máte existujúci pár kľúčov SSH, potom môžete buď použiť rovnaký pár kľúčov na prístup k dvom vzdialeným serverom, alebo môžete tiež vytvoriť iný pár kľúčov s iným názvom. Prejdime na ďalší krok a uvidíme, ako vygenerovať kľúče SSH pre oba prípady.

Vytváranie kľúčov SSH na klientskom počítači

Ak chcete na svojom počítači vygenerovať nový pár kľúčov SSH, zadajte príkaz, ako je uvedené nižšie.

ssh-keygen

Štandardne majú kľúče SSH 2048 bitov. Pre lepšiu bezpečnosť, ak chcete generovať SSH kľúče s vyššími bitmi, použite nasledujúci príkaz.

ssh-keygen -b 4096

Ak príkaz prebehne úspešne, na obrazovke sa zobrazí nasledujúca správa.

generovanie páru kľúčov verejný/súkromný rsa. Zadajte súbor, do ktorého sa má kľúč uložiť (/home/harshit/.ssh/id_rsa):

Ak teraz na počítači nemáte žiadny existujúci pár kľúčov SSH, jednoducho stlačte Zadajte, ale ak máte existujúci kľúč SSH, uložte kľúč s iným názvom súboru, ako je uvedené nižšie.

Zadajte súbor, do ktorého sa má kľúč uložiť (/home/vaše_meno/.ssh/id_rsa): /home/vaše_meno/.ssh/id_rsa_xxx

Vymeňte xxx na konci názvu súboru s príslušným názvom, ako je znázornené nižšie, a stlačte Zadajte.

Zadajte súbor, do ktorého sa má kľúč uložiť (/home/vaše_meno/.ssh/id_rsa): /home/vaše_meno/.ssh/id_rsa_client_1

Nasledujúca výzva vás požiada o zadanie prístupovej frázy ľubovoľnej dĺžky, čím sa zabezpečí dvojúrovňová bezpečnosť vášho zariadenia.

Zadajte prístupovú frázu (prázdne pre žiadnu prístupovú frázu): Zadajte rovnakú prístupovú frázu znova:

Zadaním tejto prístupovej frázy zabezpečíte, že aj keď osoba získa prístup k vášmu súkromnému kľúču, bez tejto prístupovej frázy nebude mať prístup k vášmu vzdialenému serveru.

Po dokončení celého procesu sa na obrazovke zobrazí nasledujúca správa.

ssh-keygen -b 4096 Po dokončení celého procesu generovania kľúča SSH sa na obrazovke zobrazí nasledujúca správa.

Kľúče SSH boli vygenerované vo vašom systéme. Teraz je čas skopírovať verejný kľúč na vzdialený server.

Kopírovanie verejného kľúča na vzdialený server Ubuntu

Najjednoduchší a najrýchlejší spôsob skopírovania verejného kľúča na vzdialený server je pomocou ssh-copy-id užitočnosť. Ak však tento nástroj nie je na vašom počítači z nejakého dôvodu dostupný, môžete použiť aj iné metódy uvedené v tejto časti.

Pomocou nástroja ssh-copy-id

The ssh-copy-id nástroj je štandardne dostupný na vašom počítači Ubuntu, ktorý skopíruje verejný kľúč z vášho zariadenia do príslušného adresára vášho vzdialeného počítača Ubuntu.

Ak chcete skopírovať verejný kľúč ssh, jednoducho zadajte príkaz do svojho terminálu, ako je uvedené nižšie.

ssh-copy-id username@hostname

Vymeňte užívateľské meno a meno hosťa vo vyššie uvedenom príkaze s používateľským menom a názvom hostiteľa vášho servera.

Nasledujúca správa sa zobrazí na vašom termináli, ak sa k hostiteľovi pripájate prvýkrát, napíšte Áno a stlačte Zadajte.

Autentickosť hostiteľa „172.105.XX.XX (172.105.XX.XX)“ sa nedá zistiť. Odtlačok kľúča ECDSA je xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx. Naozaj chcete pokračovať v pripájaní (áno/nie)? Áno

Teraz ssh-copy-id pomôcka vyhľadá súbor s názvom id_rsa.pub ktorý obsahuje verejný kľúč SSH. Po dokončení procesu skenovania vás vyzve na zadanie hesla vášho vzdialeného servera, ako je uvedené nižšie. Zadajte heslo a stlačte Zadajte.

/usr/bin/ssh-copy-id: INFO: pokus o prihlásenie pomocou nového kľúča (kľúčov), na odfiltrovanie všetkých, ktoré sú už nainštalované /usr/bin/ssh-copy-id: INFO: 1 kľúč (kľúčov) ) zostáva nainštalovať -- ak sa zobrazí výzva, je potrebné nainštalovať nové kľúče [email protected] heslo:

Po pridaní kľúča sa na vašom termináli zobrazí nasledujúca správa ako výstup.

Počet pridaných kľúčov: 1 Teraz sa skúste prihlásiť do počítača pomocou: "ssh '[email protected]'" a skontrolujte, či boli pridané iba požadované kľúče.

V prípade, že máte na klientskom počítači viacero kľúčov SSH, na skopírovanie príslušného verejného kľúča do vzdialeného počítača zadajte príkaz podľa vzoru uvedeného nižšie.

ssh-copy-id -i id_rsa_xxx.pub používateľské meno@hostiteľ

💡 Tip

Pri písaní do terminálu nezabudnite na koniec názvu súboru vložiť .pub.

Kopírovanie verejného kľúča metódou potrubia

Zadajte nasledujúci príkaz do terminálu if ssh-copy-id pomôcka nie je k dispozícii. Tento príkaz sa môže zdať trochu dlhší, ale funguje správne.

mačka ~/.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"

Vymeňte remote_username a server_ip_address s vaším užívateľským menom a IP adresou.

Ak máte v počítači k dispozícii viacero kľúčov SSH, vymeňte ich id_rsa.pub so súborom verejného kľúča SSH podľa vášho výberu. Napríklad, id_rsa_client_1.pub.

Po zobrazení výzvy zadajte heslo vzdialeného používateľa a stlačte Zadajte.

Heslo používateľa [email protected]:

Akonáhle zadáte heslo, id_rsa.pub súbor sa skopíruje do autorizované_kľúče súbor vzdialeného servera.

Manuálne skopírovanie verejného kľúča

Túto metódu použite, keď nemáte prístup k svojmu vzdialenému systému prostredníctvom autentifikácie heslom.

Otvor id_rsa.pub súbor pomocou kat príkaz v termináli. Môžete ho otvoriť aj z textového editora, účelom je len skopírovať obsah súboru.

mačka ~/.ssh/id_rsa.pub

Obsah súboru bude vyzerať, ako je uvedené nižšie.

SSH-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6Hy / 65 + + qqmiuLyuIQXjDiiYTjHTx VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH your_name @ your_PC

Teraz sa prihláste na svoj vzdialený server a prilepte skopírovaný obsah pomocou príkazu uvedeného nižšie. Vymeňte nad_reťazcom so skopírovaným obsahom.

echo above_string >> ~/.ssh/authorized_keys

Konfigurácia viacerých kľúčov SSH (voliteľné)

Tento krok je určený pre ľudí, ktorí majú na svojom klientskom počítači nastavených viacero kľúčov SSH. Ak máte nastavený iba jeden kľúč SSH, túto časť preskočte.

Na správu viacerých kľúčov SSH teraz vytvoríme a config súbor vnútri .ssh adresára pomocou príkazu uvedeného nižšie.

cd ~/.ssh vim config

Typ i prejdite do príkazového režimu a zadajte podrobnosti o viacerých hostiteľoch, ako je znázornené v nasledujúcom príklade:

Hostiteľský vzdialený-ubuntu-server Názov hostiteľa 172.105.XX.XX Používateľský root IdentityFile ~/.ssh/id_rsa_client_1 Hostiteľský vzdialený-ubuntu-server Názov hostiteľa 172.106.XX.XX Používateľský koreňový IdentityFile ~/.ssh/id_rsa_client_2

Podobne zadajte podrobnosti o iných vzdialených serveroch a ich kľúče. Po dokončení procesu stlačte Esc a :wq uložiť a ukončiť.

Teraz sú nasledujúce procesy rovnaké pre oba, ktoré majú jeden alebo viacero kľúčov SSH na klientskom počítači.

Prihláste sa na svoj vzdialený server pomocou kľúčov SSH

Po dokončení procesu kopírovania vášho verejného kľúča sa prihláste na vzdialený server zadaním príkazu, ako je uvedené nižšie.

ssh remote_username@server_ip_address

Ak ste pri generovaní páru kľúčov zadali prístupovú frázu, zobrazí sa výzva na jej zadanie. Po dokončení procesu autentifikácie sa otvorí nová relácia.

Teraz ste úspešne nakonfigurovali autentifikáciu pomocou kľúčov SSH na vzdialenom serveri. Autentifikácia na základe hesla je však na vašom serveri stále aktívna, čo znamená, že váš vzdialený server je stále náchylný na útoky hrubou silou.

Takže teraz úplne deaktivujeme mechanizmus prihlasovania na základe hesla z nášho vzdialeného servera.

Zakázať prihlasovací mechanizmus založený na hesle

Pred vykonaním akýchkoľvek zmien sa uistite, že používateľ root alebo akýkoľvek používateľ s povoleným sudo pre váš vzdialený účet má prístup k vášmu serveru pomocou autentifikačného systému založeného na kľúči SSH. Tento krok úplne zablokuje alebo zakáže prihlasovanie na základe hesla, takže je dôležité, aby aspoň jeden užívateľ root mal prístup k serveru prostredníctvom kľúča SSH.

Prihláste sa na svoj vzdialený server Ubuntu a zadajte príkaz uvedený nižšie.

sudo vim /etc/ssh/sshd_config
  • Stlačte tlačidlo Esc, / a zadajte „Overenie heslom“ a stlačte vstúpiť.
  • Teraz stlačte i a zmeňte hodnotu „Overenie heslom áno“ na „Overenie heslom nie“.
  • Stlačte tlačidlo Esc a zopakujte vyššie uvedený proces, aby ste našli „ChallengeResponseAuthentication“, „UsePAM“ a zmeňte ich hodnoty na č tiež.
PasswordAuthentication nie ChallengeResponseAuthentication no UsePAM no

Keď sú všetky hodnoty nastavené na č, stlačte Esc, typ :wq a udrel vstúpiť.

Ak chcete aktivovať všetky zmeny, reštartujte ssh pomocou príkazu nižšie.

sudo systemctl reštart ssh

Teraz otvorte na svojom počítači nové okno terminálu a pred zatvorením aktuálnej relácie si overte, či autentifikácia kľúčom SSH funguje správne.

Po dokončení procesu overenia zatvorte všetky spustené relácie.

Teraz sme úspešne nakonfigurovali autentifikáciu založenú na kľúči SSH na našom serveri Ubuntu 20.04. Teraz sa nikto nemôže prihlásiť na váš server pomocou prihlasovacieho mechanizmu založeného na hesle.