> Полный список статей есть в [llms.txt](https://docs.f3cloud.com/llms.txt). Markdown-версия есть у каждой страницы, достаточно добавить .md к её адресу. Эта страница в Markdown: [https://docs.f3cloud.com/ru/client-area/kak-zashitit-server-vps-vds-ot-nesankcionirovannogo-dostupa/smena-porta-ssh.md](https://docs.f3cloud.com/ru/client-area/kak-zashitit-server-vps-vds-ot-nesankcionirovannogo-dostupa/smena-porta-ssh.md).

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

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

По умолчанию SSH работает на порту **22**, и именно его в первую очередь проверяют боты, которые ищут серверы для взлома. Если перенести SSH на другой порт, большая часть такого «шума» просто исчезнет из журналов.

Важно понимать, что смена порта – это дополнительная мера, а не замена нормальной защиты. Главное – [вход по SSH-ключам](https://docs.f3cloud.com/ru/client-area/kak-zashitit-server-vps-vds-ot-nesankcionirovannogo-dostupa/ssh-klyuchi.md), а смена порта хорошо дополняет его.

> **Не закрывайте текущее подключение.**
>
> Делайте все шаги, не закрывая сессию, через которую вы подключены. Закрыть её можно только после того, как вход по новому порту заработает в отдельном окне.

***

### 1. Выберите новый порт

Подойдёт любое свободное число от **1024** до **65535**. В примерах ниже мы используем `2222`, но лучше взять что-то менее очевидное, например `48222`. Запишите выбранный порт, он понадобится для каждого подключения.

***

### 2. Откройте новый порт в брандмауэре

Команды выполняются на сервере.\
На Ubuntu и Debian этот шаг можно пропустить, если брандмауэр у вас не включён.\
На AlmaLinux, CentOS и Oracle Linux его нужно выполнить в любом случае из-за SELinux.

#### Ubuntu и Debian (UFW)

```bash
# Разрешаем подключения к новому порту SSH
sudo ufw allow 2222/tcp
```
#### AlmaLinux, CentOS, Oracle Linux

```bash
# Открываем новый порт в брандмауэре firewalld
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

# SELinux по умолчанию разрешает SSH только на порту 22.
# Ставим утилиту semanage и добавляем новый порт в список
# разрешённых для SSH
sudo dnf install -y policycoreutils-python-utils
sudo semanage port -a -t ssh_port_t -p tcp 2222
```

***

### 3. Укажите новый порт в настройках SSH

Команды выполняются на сервере.

```bash
# Открываем файл с нашими настройками SSH. Если вы делали
# инструкцию про SSH-ключи,
# он уже существует, если нет – файл будет создан
sudo nano /etc/ssh/sshd_config.d/00-security.conf
```

Добавьте в файл строку с новым портом.

```ssh-config
# SSH теперь слушает порт 2222 вместо 22
Port 2222
```

Чтобы сохранить файл, нажмите <kbd>Ctrl</kbd> + <kbd>O</kbd> и <kbd>Enter</kbd>, а чтобы выйти из редактора, <kbd>Ctrl</kbd> + <kbd>X</kbd>.

```bash
# Проверяем настройки на ошибки. Если команда ничего не вывела,
# всё в порядке
sudo sshd -t
```

***

### 4. Перезапустите SSH

#### Ubuntu 24.04 и новее

```bash
# В новых Ubuntu SSH запускается через systemd-сокет,
# поэтому сначала перечитываем настройки, а потом перезапускаем
# и сокет, и сам SSH
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
sudo systemctl restart ssh
```
#### Ubuntu 22.04 и Debian

```bash
# Перезапускаем SSH, чтобы он начал слушать новый порт
sudo systemctl restart ssh
```
#### AlmaLinux, CentOS, Oracle Linux

```bash
# Перезапускаем SSH, чтобы он начал слушать новый порт
sudo systemctl restart sshd
```

Теперь убедимся, что SSH действительно слушает новый порт.

```bash
# В списке должен появиться порт 2222
sudo ss -tlnp | grep ssh
```

***

### 5. Подключитесь по новому порту

Эту команду выполните на своём компьютере, в **новом** окне терминала.

```bash
# Флаг -p задаёт порт подключения
ssh -p 2222 admin@SERVER_IP
```

В Termius порт меняется в настройках подключения, в поле **Port**.

***

### 6. Закройте старый порт 22

Когда вход по новому порту заработал, закройте порт 22 в брандмауэре.

#### Ubuntu и Debian (UFW)

```bash
# Удаляем правило для старого порта SSH
sudo ufw delete allow 22/tcp

# Проверяем список правил
sudo ufw status
```
#### AlmaLinux, CentOS, Oracle Linux

```bash
# Убираем стандартный сервис SSH (порт 22) из открытых
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

# Проверяем, что открыто
sudo firewall-cmd --list-all
```

> **Если вы пользуетесь fail2ban.**
>
> Если вы пользуетесь fail2ban, укажите новый порт и в его настройках, иначе он будет блокировать нарушителей не на том порту. Как это сделать, мы показали в статье [о fail2ban](https://docs.f3cloud.com/ru/client-area/kak-zashitit-server-vps-vds-ot-nesankcionirovannogo-dostupa/fail2ban.md).

> **Если доступ всё-таки пропал.**
>
> Если доступ всё-таки пропал, откройте сервер кнопкой <kbd>Консоль</kbd> в списке серверов в личном кабинете. Там можно удалить строку `Port` из файла `/etc/ssh/sshd_config.d/00-security.conf` и перезапустить SSH.

***

### Наши ресурсы

**Telegram-канал:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Сайт хостинга:** [https://f3cloud.com](https://f3cloud.com/ru)
