Protokol SSH môže okrem mena a hesla používať k prihlasovaniu RSA/DSA/ECDSA kľúče. Identita užívateša je preukázaná kryptograficky a použitie privátneho kľúča je navyše chránené heslom. Serveru potom svoje meno a heslo neposielate.
Zabezpečenie prihlásenia na server je výnimočne dôležité, pretože pri prolomení prihlásenia bude Váš server kompromitovaný a pravdepodobne zavirovaný, pridaný do botnetu alebo zneužitý k rozosielaniu spamu. Prihlásenie na SSH porte 22 skúšajú roboti na prakticky všetkých IP adresách na internete a dôjde k nemu určite aj na Vašom servery. Dokážete si potom predstavit, aké následky bude mať použitie slabého hesla.
Ak chcete o principu fungovania prihlásenia z kľúčmi viac, prečítajte si článok na portále Interval.cz a zejména odstavec Ako SSH autentizuje uživateľov.
Keď sa pripájate prvý krát, uvidíte toto varovanie o neznámom hoste:
The authenticity of host 'domena .eu (217.198.117.xx)' can't be established.
ECDSA key fingerprint is 3a:22:8a:22:11:6f:37:b3:66:78:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)? Yes
Znamená to, že sa na server prihlasujete prvý krát. Zapište si fingerprint a prihláste sa znovu.
Po potvrdení sa host pridá do zoznamu známých a už by ste toto varovanie nemali vidieť.
Pokiaľ ho vidíte aj pri druhom prihlásení spolu s chybou nižšie, nepodarilo sa pridanie hostu do zoznamu známych.
Failed to add the host to the list of known hosts (/home/user/.ssh/known_hosts).
Enter passphrase for key '/home/user/.ssh/id_ecdsa':
Potom stačí pripojit sa na ssh s právami roota, teda sudo ssh root@domena.eu
Problém so zápisom do known_hosts tým bude vyriešený.
Druhou možnosťou, kedy môžete toto varovanie vidieť, je MITM útok. Je lepšie server pridať do zoznamu známých a nepotvrdzovať pri každom pripojení, že host je neznámi. Pokiaľ sa Vám to stane po pridaní do zoznamu, majte sa na pozore, že sa na servery kľúč zmenil a môžete byť cieľo útoku.
Posledným krokom k zabezpečeniu prihlásenia je zakázanie prihlasovania heslom. Dôležité je si najprv zazálohovať dvojicu SSH kľúčů, pretože po ich strate sa na server neprihlásite.
Skopírujte súbor s nastavením SSH do záložného súboru:
cd /etc/ssh cp sshd_config sshd_config.origOtvorte konfiguráciu SSH: nano sshd_config. Vo všetkých troch riadkoch zmeňte Yes na No. Položky nie sú v konfigurácii pri sebe, preto ich môžete vyhľadať po stlačení Ctrl+W a napísaní textu.
PasswordAuthentication yes
UsePAM yes
Potom službu reštartujte: service ssh restart. Teraz je prihlásenie SSH kľúčmi zabezpečené.
Nad rámec tohoto nastavenia môžete ešte zvážiť zakázanie použitia účtu Root (PermitRootLogin nastaviť na no) a poslúchanie SSH protokolu na inom porte (je monžné ľahko zmeiť v konfigurácii sshd_config). Pokiaľ zmeníte SSH port z 22 na iný, musíte ho definovať pri prihlasovaní ako parameter - ssh username@hostname.com -p 50683.