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

Photo Ubuntu server

OpenSSH даёт зашифрованный удалённый доступ к серверу. По умолчанию sshd слушает порт 22, и именно его в первую очередь сканируют боты. Смена порта не заменяет ключи и файрвол, но срезает шум от автосканеров. Ниже: как посмотреть текущий порт, выбрать новый, править sshd_config в Ubuntu и не потерять доступ.

Зачем менять порт 22

  • меньше автоматических попыток входа на стандартный порт;
  • чище логи auth (меньше «шума» от перебора);
  • чуть сложнее попасть «с первого скана» для примитивных ботов.

Это не серебряная пуля: целенаправленный сканер всё равно найдёт открытый порт. Меняйте порт вместе с ключами SSH, отключением пароля и правилами UFW/iptables.

Проверить, на каком порту слушает sshd

На современных Ubuntu удобнее ss (пакет iproute2):

sudo ss -tlnp | grep -E 'sshd|ssh'

Если есть net-tools, сработает и классика:

sudo netstat -tuln | grep ssh

В выводе обычно виден :22 (или уже ваш нестандартный порт) и процесс sshd.

Как выбрать новый порт

  • диапазон 1024-65535 (привилегированные 1-1023 лучше не трогать без нужды);
  • порт свободен: не занят другим сервисом на этом хосте;
  • не «очевидный» 2222/22222, если хотите чуть меньше шаблонного скана (всё равно не секрет).

Проверка, свободен ли порт (пример 49222):

sudo ss -tlnp | grep 49222 || echo "порт свободен"

Изменить порт в sshd_config

1. Откройте конфиг:

sudo nano /etc/ssh/sshd_config

2. Найдите строку Port 22 (или закомментированную #Port 22). Укажите новый порт, например:

Port 49222

Можно оставить несколько директив Port временно (и 22, и новый), пока не проверите вход на новом порту. Потом уберите 22.

3. Сохраните файл (в nano: Ctrl+O, Enter, Ctrl+X).

4. Проверьте синтаксис до рестарта:

sudo sshd -t

Без ошибок в выводе — можно перезапускать службу:

sudo systemctl restart ssh
# на части систем юнит называется sshd:
# sudo systemctl restart sshd

Важно: не закрывайте текущую SSH-сессию, пока не убедитесь, что вход на новом порту работает. Откройте второй терминал и проверьте.

Файрвол и подключение

Разрешите новый порт до (или сразу после) рестарта sshd, иначе отрежете себя. Для UFW:

sudo ufw allow 49222/tcp
sudo ufw status

Подключение с клиента:

ssh -p 49222 user@server.example.com

Или в ~/.ssh/config:

Host myserver
    HostName server.example.com
    User user
    Port 49222

Проверка после смены

sudo ss -tlnp | grep 49222
sudo systemctl status ssh

Успешный вход с нового порта + слушающий sshd на нём — можно закрывать порт 22 в файрволе (если убрали его из конфига):

sudo ufw delete allow 22/tcp

Что ещё усилить кроме порта

  • вход по ключам, PasswordAuthentication no после проверки ключей;
  • PermitRootLogin no или prohibit-password;
  • ограничение по IP (UFW, fail2ban, AllowUsers/AllowGroups);
  • регулярные обновления пакетов OpenSSH и системы.

Кратко

Правьте Port в /etc/ssh/sshd_config, прогоните sshd -t, откройте порт в файрволе, перезапустите ssh/sshd и проверьте вход со второго терминала. Смена порта — слой «меньше шума», а не замена ключам и политике доступа.


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