Jak zlepšit zabezpečení autorizace SSH?
Vytvoříme si obyčejného uživatele a vygeneruje si rsa klíčový pár:
useradd -m obycelny_uzivatel
ssh-keygen
Klíče se uchovávají v /home/obycejny_uzivatel/.ssh/
Pro případ serveru se zde nachází soubor authorized_keys, který obsahuje seznam certifikátů, které server akceptuje (sem uložíme obsah obycejny_uzivatel.pub).
cat obycejny_uzivatel.pub >> ~/.ssh/authorized_keys
Pomocí scp je možné klíč na klienta přenést a nastavit oprávnění.
scp ~/.ssh/obycejny_uzivatel.key uzivatel@192.168.1.12:~/.ssh/
chmod 600 ~/.ssh/obycejny_uzivatel.key
Pak už stačí jen nastavit ssh clienta aby používat pro doménu xy privátní klíč obycejny_uzivatel.key, obsah souboru ~/.ssh/config:
Host muj_pc HostName muj.server.cz User muj_uzivatel IdentityFile ~/.ssh/obycejny_uzivatel.keyTeď je dobré na serveru zakázat přihlášení superuživatele (root) a přihlašování heslem.
PermitRootLogin no PasswordAuthentication no
Nyní by útočník musel získat certifikát (+heslo k němu), vědět uživatelské jméno a pokud by chtěl práva roota, tak i jeho heslo. Tak uvidíme, kdo mě vezme za slovo... :-)