как настроить SSH без пароля по ключу и закрыть брутфорс
Рейтинг: 48.7% · 7 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
как настроить SSH без пароля по ключу и закрыть брутфорс
Поднял VPS, сразу в auth.log увидел тысячи попыток брутфорса на root по SSH. Хочу нормально закрыть: настроить вход только по ключу, отключить root login и вообще заблокировать левые IP. Знаю что это базовые вещи, но хочу сделать правильно и не отрезать себя от сервера в процессе. Подскажите последовательность действий.
✔ Лучший ответ сформирован автоматически — lev8912
Для блокировки брутфорса ставь fail2ban — это стандарт де-факто. Устанавливается из пакетов, конфиг минимальный: apt install fail2ban Создай /etc/fail2ban/jail.local: [sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 findtime = 600 Это будет банить на час любой IP с 3 неудачными попытками за 10 минут. Проверить статус: fail2ban-client status ss…
- ruslan_py40
- Сообщения: 5
- Зарегистрирован: Вс май 10, 2026 10:03 pm
Re: как настроить SSH без пароля по ключу и закрыть брутфорс
Главное правило — сначала проверяй что ключи работают, ПОТОМ отключай парольную аутентификацию. Порядок такой: 1) генеришь ключ на локалке (ssh-keygen -t ed25519), 2) копируешь на сервер (ssh-copy-id user@server), 3) проверяешь что заходишь по ключу в отдельном терминале НЕ закрывая текущую сессию, 4) только после этого меняешь sshd_config.
- ruslan8009
- Сообщения: 2
- Зарегистрирован: Пн май 18, 2026 3:47 am
Re: как настроить SSH без пароля по ключу и закрыть брутфорс
Вот что менять в /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizationKeysFile .ssh/authorized_keys
Port 2222
Смену порта со стандартного 22 на что-то нестандартное резко снижает шум в логах — не безопасность сама по себе, но жить приятнее. После изменений: systemctl reload sshd, и обязательно проверь в новом терминале перед тем как закрыть старый.
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizationKeysFile .ssh/authorized_keys
Port 2222
Смену порта со стандартного 22 на что-то нестандартное резко снижает шум в логах — не безопасность сама по себе, но жить приятнее. После изменений: systemctl reload sshd, и обязательно проверь в новом терминале перед тем как закрыть старый.
Re: как настроить SSH без пароля по ключу и закрыть брутфорс
✔ Лучший ответ — сформирован автоматически
Для блокировки брутфорса ставь fail2ban — это стандарт де-факто. Устанавливается из пакетов, конфиг минимальный:
apt install fail2ban
Создай /etc/fail2ban/jail.local:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
Это будет банить на час любой IP с 3 неудачными попытками за 10 минут. Проверить статус: fail2ban-client status sshd — увидишь счётчики и забаненные IP.
apt install fail2ban
Создай /etc/fail2ban/jail.local:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
Это будет банить на час любой IP с 3 неудачными попытками за 10 минут. Проверить статус: fail2ban-client status sshd — увидишь счётчики и забаненные IP.
Re: как настроить SSH без пароля по ключу и закрыть брутфорс
Дополнительно стоит настроить ufw если ещё не сделал:
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Если знаешь свой домашний IP — можно разрешить SSH только с него: ufw allow from 1.2.3.4 to any port 2222. Но тогда при смене IP сам себя заблокируешь — держи в уме.
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Если знаешь свой домашний IP — можно разрешить SSH только с него: ufw allow from 1.2.3.4 to any port 2222. Но тогда при смене IP сам себя заблокируешь — держи в уме.
Re: как настроить SSH без пароля по ключу и закрыть брутфорс
Ещё лайфхак: AllowUsers yourusername в sshd_config — только этот пользователь сможет логиниться по SSH вообще, даже если кто-то взломает другой аккаунт. Плюс настрой ClientAliveInterval 300 и ClientAliveCountMax 2 — будет отключать зависшие сессии через 10 минут.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
-
-
- Как защитить REST API от перебора и брутфорса без блокировки легитимных пользователей
6 ответов · 14 просмотров
-
-
- vLLM в проде падает с OOM при всплесках трафика — как правильно настроить KV-cache и batching?
5 ответов · 12 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость