Усиление защиты SSH

LinuxSSHбезопасность

Дефолтный sshd разрешает вход root по паролю. Боты брутфорсят это круглосуточно — проверь: sudo lastb | head. Сначала создай отдельного пользователя с sudo, потом закрой вход по паролю — три строки в конфиге.

Шаг 0: создай пользователя с sudo (если пока заходишь как root)

Без него после PermitRootLogin no останешься без доступа.

sudo adduser tashirka              # задай пароль, остальное — Enter
sudo usermod -aG sudo tashirka     # Debian/Ubuntu; для RHEL/CentOS замени sudo на wheel
id tashirka                        # проверка: в группах должен быть sudo/wheel

Переключись на него:

su - tashirka

Если пользователь уже есть — пропусти шаг.

Шаг 1: добавь ключ этому пользователю (иначе закроешь себе вход!)

# с локальной машины — ключ скопируется новому пользователю
ssh-copy-id tashirka@host

Или вручную на сервере (под пользователем tashirka):

mkdir -p ~/.ssh && echo "ssh-ed25519 AAAAC3...твой_ключ" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

Правка конфига

sudo nano /etc/ssh/sshd_config

Установи (или раскомментируй):

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

Применение с проверкой синтаксиса

sudo sshd -t && sudo systemctl restart sshd

sshd -t обязателен: опечатка в конфиге = сервер недоступен после рестарта. Рестарт не рвёт текущую сессию — сначала проверь вход новым окном терминала, потом закрывай старое.

Проверка

ssh root@host          # → Permission denied
ssh tashirka@host        # → входит по ключу
sudo sshd -T | grep -E "permitrootlogin|passwordauthentication"