Стандартный порт SSH 22 постоянно сканируют боты. Смена порта не заменяет настоящую защиту, но заметно сокращает мусор в логах и количество попыток подбора пароля.
Перед началом
- Не закрывайте текущую сессию, пока не проверите вход по новому порту.
- Выберите свободный порт выше 1024, например 2222 или 49222. Проверить, что он не занят:
ss -tlnp | grep 2222.
Шаг 1. Открываем порт в файрволе
Если включён UFW:
sudo ufw allow 2222/tcp
Если сервер у облачного провайдера, откройте порт и во внешнем файрволе в панели. Подробнее про UFW в статье о защите сервера с UFW.
Шаг 2. Меняем порт
Ubuntu 22.04 и более ранние версии
Откройте /etc/ssh/sshd_config, найдите строку #Port 22, раскомментируйте и укажите новый порт:
Port 2222
Проверьте конфигурацию и перезапустите службу:
sudo sshd -t sudo systemctl restart ssh
Ubuntu 22.10, 24.04 и новее
Здесь SSH по умолчанию запускается через ssh.socket, и порт задаётся в сокете. Начиная с 24.04 systemd генератор берёт значение Port из sshd_config, поэтому достаточно изменить файл и выполнить:
sudo systemctl daemon-reload sudo systemctl restart ssh.socket
Если сокет всё равно слушает 22, отключите его и вернитесь к классической службе:
sudo systemctl disable --now ssh.socket sudo systemctl enable --now ssh.service
Шаг 3. Проверяем
ss -tlnp | grep ssh
С другого терминала подключитесь по новому порту:
ssh -p 2222 user@server
Только после успешного входа закройте 22-й порт: sudo ufw delete allow 22/tcp (или delete allow OpenSSH).
Что ещё сделать
Порт стоит менять вместе с другими мерами: вход по ключам SSH, запрет входа под root, fail2ban и своевременные обновления OpenSSH.