Kapitola 3 · 3.2
Vypnutie prihlasovania heslom a ako root
Každý server na internete v krátkom čase navštívia programy, ktoré hádajú heslá. Ak sa dá prihlásiť iba kľúčom, nemajú žiadnu šancu. Teraz si to zapnete.
Upozornenie: Funguje prihlásenie kľúčom ako anna (pozri Vlastný používateľ so sudo)? Potom si najprv vytvorte snapshot (pozri Snapshoty: záchranná sieť pri každej väčšej zmene) a počas týchto krokov majte otvorenú jednu reláciu. Ak sa niečo pokazí, dostanete sa dnu cez konzolu (pozri Konzola: váš VPS v prehliadači).
Vlastný súbor s nastaveniami
V Debiane a Ubuntu číta SSH server najprv súbory v /etc/ssh/sshd_config.d/, v abecednom poradí. Pre každé nastavenie platí prvá hodnota, na ktorú narazí. Váš vlastný súbor preto dostane názov, ktorý bude na začiatku:
anna@web1:~$ sudo nano /etc/ssh/sshd_config.d/00-eigen.conf
Vložte doň:
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
PasswordAuthentication no: žiadne heslá cez SSH.KbdInteractiveAuthentication no: ani žiadna výzva na heslo inou cestou.PermitRootLogin no: root sa už nemôže prihlásiť cez SSH, ani kľúčom. Pracujete ako anna so sudo. Ak chcete rootovi naďalej povoliť prihlásenie kľúčom, použiteprohibit-password.
Kontrola a použitie
anna@web1:~$ sudo sshd -t
anna@web1:~$ sudo sshd -T | grep -Ei '^(passwordauthentication|kbdinteractiveauthentication|permitrootlogin)'
passwordauthentication no
kbdinteractiveauthentication no
permitrootlogin no
anna@web1:~$ sudo systemctl restart ssh
sshd -t nevypíše nič, ak je súbor v poriadku. sshd -T ukáže, ktoré hodnoty skutočne platia. Stále sa tam zobrazuje passwordauthentication yes? Potom ho znova zapína iný súbor v sshd_config.d, často 50-cloud-init.conf. Váš 00-eigen.conf je pred ním a má prednosť; skontrolujte, či je názov správny.
V AlmaLinux a Rocky Linux sa služba volá sshd: sudo systemctl restart sshd.
Test pred zatvorením relácie
Otvorte nové okno a vyskúšajte:
ssh anna@203.0.113.10
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no anna@203.0.113.10
anna@203.0.113.10: Permission denied (publickey).
ssh root@203.0.113.10
root@203.0.113.10: Permission denied (publickey).
Prvý príkaz musí fungovať. Ďalšie dva musia byť odmietnuté. Je všetko v poriadku? Potom snapshot odstráňte.
Tip: Iné číslo portu ako 22 udrží váš log pokojnejší, ale server tým bezpečnejší nebude. Prácu robí kľúč. Ak port predsa len zmeníte, najprv ho otvorte vo firewalle (pozri Firewall s ufw (alebo nftables)).
