Глава 3 · 3.2
Изключване на влизането с парола и като root
Всеки сървър в интернет скоро бива посетен от програми, които се опитват да познаят пароли. Ако влизането е възможно само със ключ, те нямат никакъв шанс. Сега ще включите тази защита.
Внимание: Работи ли влизането с Вашия ключ като anna (вижте Собствен потребител със sudo)? Тогава първо направете snapshot (вижте Снапшоти: предпазна мрежа при всяка голяма промяна) и дръжте една сесия отворена по време на тези стъпки. Ако все пак нещо се обърка, можете да влезете през конзолата (вижте Конзолата: Вашият VPS в браузъра).
Собствен файл с настройки
В Debian и Ubuntu SSH сървърът първо чете файловете в /etc/ssh/sshd_config.d/, по азбучен ред. За всяка настройка важи първата стойност, която срещне. Затова Вашият собствен файл получава име, което е най-отпред:
anna@web1:~$ sudo nano /etc/ssh/sshd_config.d/00-eigen.conf
Въведете в него:
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
PasswordAuthentication no: без повече пароли през SSH.KbdInteractiveAuthentication no: и без запитване за парола по заобиколен път.PermitRootLogin no: root вече не може да влиза през SSH, дори и с ключ. Вие работите като anna със sudo. Ако все пак искате да разрешите на root да влиза с ключ, използвайтеprohibit-password.
Проверка и прилагане
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 не извежда нищо, ако файлът е правилен. sshd -T показва кои стойности действително са в сила. Все още ли виждате passwordauthentication yes? Тогава друг файл в sshd_config.d отново го включва, често 50-cloud-init.conf. Вашият 00-eigen.conf е преди него и има предимство; проверете дали името е правилно.
В AlmaLinux и Rocky Linux услугата се казва sshd: sudo systemctl restart sshd.
Тестване, преди да затворите сесията
Отворете нов прозорец и опитайте:
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).
Първото трябва да работи. Другите две трябва да бъдат отказани. Всичко наред ли е? Тогава изтрийте snapshot-а.
Съвет: Порт, различен от 22, прави дневника Ви по-спокоен, но не прави сървъра Ви по-сигурен. Ключът върши работата. Ако все пак смените порта, първо го отворете във Вашата защитна стена (вижте Защитна стена с ufw (или nftables)).
