Как изменить стандартный порт SSH

06 февраля 2026 5 мин 9

SSH-протокол шифрует трафик для безопасной передачи данных. Его используют, чтобы удалённо подключаться к операционным системам и базам данных, обмениваться файлами, выполнять команды на удалённых машинах и для других задач. 

По умолчанию SSH работает на порту 22. Часто в качестве дополнительной меры безопасности рекомендуют изменить этот порт на нестандартный. Эта мера повышает защиту от ботов, которые массово сканируют сеть на наличие открытых портов и подбирают учётные данные (логины и пароли).

Как изменить SSH-порт

Команда для подключения по SSH в терминале Linux:

# ssh username@ip_address

Если порт SSH был изменен, явно укажите его вручную. Пример команды для порта 2233:

# ssh -p 2233 username@ip_address

Настройка конфигурационного файла

Убедитесь, что выбранный SSH-порт свободен. Для этого подойдёт утилита ss из пакета iproute2.

Debian-based ОС

# apt install iproute2

RedHat-based ОС

# yum install iproute2

Также для проверки доступности порта можно использовать утилиту netstat. 

Debian-based ОС

# apt install net-tools

RedHat-based ОС

# yum install net-tools

Далее проверьте занят ли порт.

Debian-based ОС

# ss -tlpn | grep ':22'
# netstat -tlpn | grep ':22'

RedHat-based ОС

# ss -tlpn | grep ':22'
# netstat -tlpn | grep ':22'

Чтобы избежать повтора, дублировать описание команд не будем, поскольку их ключи в Ubuntu и CentOS одинаковы.

Вывод:

LISTEN 0      128          0.0.0.0:22        0.0.0.0:*    users:(("sshd",pid=745,fd=7))            
LISTEN 0      128             [::]:22           [::]:*    users:(("sshd",pid=745,fd=8)) 

Порт 22 занят. Проверьте другой порт, который нужно использовать для замены:

# ss -tlpn | grep ':2233' 

Поскольку вывод пустой, значит, порт свободен, и можно его занять.

В любом текстовом редакторе измените порт в конфигурационном файле:

# vim /etc/ssh/sshd_config

или

# nano /etc/ssh/sshd_config

Найдите строку:

Port 22

Если строка начинается с #, символ нужно удалить. Укажите новое значение порта, например, 2233. Сохраните изменения.

Рекомендуем использовать подход с отдельными конфигурационными файлами (drop-in) OpenSSH. Это позволяет вносить изменения (например, смену порта) не в основной файл /etc/ssh/sshd_config, а в отдельные файлы внутри каталога /etc/ssh/sshd_config.d/. Такой метод упрощает управление настройками: все правки собраны в одном месте, их легко отслеживать, а для возврата к стандартным настройкам достаточно удалить соответствующий drop-in файл.

Чтобы изменить порт этим способом, создайте и откройте файл конфигурации:

nano /etc/ssh/sshd_config.d/custom-port.conf

Добавьте в него директиву с другим портом:

Port 2233

Настройка файрвола

Если на сервере активен файрвол (например, ufw или firewalld), перед перезапуском SSH-службы необходимо добавить правило для нового порта. Игнорировать этот шаг нельзя: это может привести к блокировке подключения и потере удаленного доступа после перезагрузки службы.

Во время настройки советуем сохранять текущую SSH-сессию открытой. Закройте её только после успешного тестирования подключения к новому порту.

Ниже приведены команды для настройки популярных файрволов.

Debian-based ОС с UFW

Проверьте состояние файрвола и список активных правил:

# ufw status verbose

Добавьте правило, разрешающее подключения к новому SSH-порту:

# ufw allow 2233/tcp

Проверьте список новых правил:

# ufw status numbered 

RedHat-based ОС с firewalld

Убедитесь, что служба firewalld работает:

# systemctl is-active firewalld

Проверьте текущую конфигурацию и список открытых портов:

# firewall-cmd --list-all

Настройте файрвол. Первая команда добавляет правило для нового порта в постоянную конфигурацию, вторая — применяет это изменение:

# firewall-cmd --permanent --add-port=2233/tcp
# firewall-cmd --reload

Убедитесь, что нужный порт добавлен в список разрешённых:

# firewall-cmd --list-ports

Проверка синтаксиса конфигурации

Перед выполнением перезапуска службы рекомендуется провести проверку синтаксиса конфигурации SSH-демона. Это позволяет выявить возможные ошибки в настройках и избежать потери доступа к серверу из-за некорректной конфигурации:

# sshd -t 

Если вывод пуст, значит, синтаксис корректен.

Перезапуск SSH

Важно: некорректная конфигурация может привести к разрыву соединения с сервером. Сначала лучше потренироваться на тестовой машине. Также убедитесь, что у вас есть запасной способ доступа (например, через консоль VNC или KVM).

Перезапустите службу SSH.

Debian-based ОС

# systemctl restart ssh

RedHat-based ОС

# systemctl restart sshd

Примечание для Ubuntu 24.04 и новее. В этих версиях OpenSSH может использовать механизм активации через сокеты systemd (ssh.socket). При изменении параметра Port в конфигурации, systemd автоматически обновляет настройку сокета ListenStream. Чтобы проверить, задействован ли этот режим, выполните:

 # systemctl is-enabled ssh.socket 
 # systemctl is-active ssh.socket

Если обе предыдущие команды вернули статус enabled и active, то после изменения порта необходимо применить конфигурацию и перезапустить сокет:

 # systemctl daemon-reload
 # systemctl restart ssh.socket

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

# ssh username@ip_address -p2233

Если подключение не удалось, вы можете вернуться к активной сессии для анализа ошибок и корректировки конфигурации, не теряя доступ к серверу.

Проверка настроек

Debian-based ОС

# ss -tlpn | grep ssh

RedHat-based ОС

# ss -tlpn | grep ssh

В случае успешного изменения порта вывод команды будет содержать примерно такие строки:

LISTEN 0      128          0.0.0.0:2233      0.0.0.0:*    users:(("sshd",pid=1065,fd=7))           
LISTEN 0      128             [::]:2233        [::]:*    users:(("sshd",pid=1065,fd=8)) 

Теги

Мы используем файлы cookie для работы сайта Вы можете отключить cookies в настройках своего браузера, но это может негативно повлиять на работу сайта. Оставаясь на сайте, вы соглашаетесь с использованием файлов cookie.