Как сменить порт SSH в Ubuntu, Debian и AlmaLinux
Переносим SSH с порта 22, открываем новый порт в брандмауэре и SELinux, учитываем systemd-сокет в Ubuntu 24.04 и проверяем, что ничего не сломалось.

Порт 22 — первое, что проверяет любой сканер. Перенос SSH на другой порт не делает сервер безопаснее сам по себе (сканеры умеют перебирать порты), но убирает из журналов 99% шума и снижает нагрузку от ботов. Это дополнение к входу по ключу, а не замена.
Не закрывайте текущую сессию, пока в отдельном окне не заработал вход по новому порту.
1. Выберите порт
Любое свободное число от 1024 до 65535. В примерах ниже 2222, но лучше взять что-то менее очевидное, например 48222. Запишите его.
2. Откройте порт в брандмауэре
UFW (Ubuntu, Debian):
sudo ufw allow 2222/tcp
firewalld (AlmaLinux, Rocky, CentOS) — здесь обязательно ещё и SELinux, иначе sshd не сможет слушать нестандартный порт:
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
sudo dnf install -y policycoreutils-python-utils
sudo semanage port -a -t ssh_port_t -p tcp 2222
3. Укажите порт в конфиге SSH
Если делали статью про ключи, файл 00-hardening.conf уже есть, просто добавьте строку. Если нет — создайте:
sudo nano /etc/ssh/sshd_config.d/00-hardening.conf
Port 2222
Проверьте синтаксис: sudo sshd -t (тишина = порядок).
4. Перезапустите SSH
В Ubuntu 24.04 и новее SSH запускается через systemd-сокет, и обычного перезапуска службы недостаточно: сокет продолжит слушать 22. Нужно перезапустить и его:
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
sudo systemctl restart ssh
Ubuntu 22.04 и Debian:
sudo systemctl restart ssh
AlmaLinux и семейство RHEL:
sudo systemctl restart sshd
Убедитесь, что sshd слушает новый порт:
sudo ss -tlnp | grep sshd
5. Подключитесь по новому порту
В новом окне на своём компьютере:
ssh -p 2222 admin@IP_СЕРВЕРА
В ~/.ssh/config порт задаётся строкой Port 2222, в Termius и PuTTY — отдельным полем.
6. Закройте старый порт
Только после успешного входа по новому.
UFW:
sudo ufw delete allow 22/tcp
sudo ufw status
firewalld:
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload
Если стоит fail2ban, укажите новый порт в его настройках (port = 2222 в jail.local), иначе баны не сработают.
Если доступ пропал
Через консоль в кабинете tanaka.host удалите строку Port из 00-hardening.conf и перезапустите SSH. На Ubuntu 24.04 — вместе с ssh.socket.