Как сменить порт SSH в Ubuntu

Стандартный порт 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.

Источники и ссылки


Комментарии загружаются…