Как открыть ssh-порт 22 в Ubuntu 22.04 Jammy Jellyfish Linux
Протокол SSH по умолчанию работает на порту 22. Чтобы принимать входящие соединения на вашем SSH-сервере, вам необходимо убедиться, что порт 22 разрешен через брандмауэр.
В этом уроке вы узнаете, как открыть порт 22 SSH в Ubuntu 22.04 Jammy Jellyfish. Единственным обязательным условием является то, что у вас уже должен быть установлен SSH. Если вы еще не установили его, ознакомьтесь с нашим руководством по установке SSH-сервера в Ubuntu 22.04.
В этом уроке вы узнаете:
- Как открыть ssh порт 22
- Как удалить правило брандмауэра порта SSH

Откройте ssh-порт 22 в Ubuntu 22.04 Jammy Jellyfish Linux, пошаговые инструкции
- Начните с открытия терминала командной строки и ввода следующей команды, чтобы проверить состояние вашего брандмауэра. Ubuntu по умолчанию использует ufw (несложный брандмауэр), и он уже должен быть установлен.
$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
$ sudo ufw allow ssh
В качестве альтернативы можно разрешить подключение через SSH-порт 22 только определенному IP-адресу или подсети. В приведенном ниже примере IP-адрес 192.168.1.2 будет разрешен для подключения через порт 22:
$ sudo ufw allow from 192.168.1.2 to any port ssh
В этом примере, чтобы разрешить выполнение всей подсети 192.168.0.0/16 :
$ sudo ufw allow from 192.168.0.0/16 to any port ssh
$ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 22/tcp (v6) ALLOW IN Anywhere (v6)
$ sudo ufw delete allow ssh $ sudo ufw delete allow from 192.168.1.2 to any port ssh $ sudo ufw delete allow from 192.168.0.0/16 to any port ssh
Заключительные мысли
В этом уроке вы узнали, как открыть порт 22 SSH в Ubuntu 22.04 Jammy Jellyfish Linux. Вы также увидели, как разрешить определенные IP-адреса или сети, не разрешая входящий SSH-трафик с любого хоста. Наконец, вы узнали, как удалить добавленные ранее правила брандмауэра на случай, если в будущем вам понадобится снова изменить настройки.
Все права защищены. © Linux-Console.net • 2019-2023
Как поменять (изменить) порт у SSH сервера
![]()
SSH — сетевой протокол прикладного уровня. Он позволяет безопасно передавать сетевые пакеты. Его используют для удаленного подключения к операционной системе, передачи файлов (как копирование обычных файлов, так и потоковая передача данных, например, с веб-камеры), подключения к базам данных, удаленного запуска команд и т.д. Данный протокол шифрует все данные, включая пароли, поэтому он считается безопасным. Однако для того, чтобы злоумышленники не получили доступ к учётным данным пользователя, у которого есть доступ по SSH, рекомендуется обезопасить свой сервер. По умолчанию SSH слушает порт 22. В целях безопасности рекомендуется сменить порт SSH на нестандартный. Это значительно усложнит жизнь ботам, которые постоянно сканируют серверы и открытые порты и пытаются подобрать логин и пароль для доступа к серверу по SSH по стандартному порту. Помимо смены порта можно настроить блокировку количества попыток подключений к серверу (например, с помощью утилиты fail2ban), отключить подключение по SSH пользователя root, отказаться от простых и угадываемых логинов (таких как admin, ivanov, zabbix и пр.), настроить запрет подключения по паролю и включить подключение только по ключу (требуется предварительная настройка и проверка, иначе можно потерять доступ к серверу по SSH). Как правило для подключения по SSH в терминале Linux используется следующая команда:
# ssh username@ip_address
Если изменить порт, то при подключении к серверу по SSH нужно явно указывать порт (возьмем для примера порт 2233):
# ssh -p 2233 username@ip_address
- Изменение порта SSH
- 1. Конфигурационный файл
- 2. Перезапуск SSH
- 3. Проверка
Изменение порта SSH
Конфигурационный файл
Обязательно проверьте, что порт, на который мы хотим заменить стандартный порт SSH, не занят другими службами. Это можно сделать с помощью утилиты netstat. Для этого потребуется установить пакет net-tools.
Debian/Ubuntu
# apt install net-tools # netstat -tulpan | grep 22
CentOS/AlmaLinux
# yum install net-tools # netstat -anp | grep 22
Вывод будет примерно таким:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 132394/sshd: /: tcp6 0 0 . 22 . * LISTEN 132394/sshd:
Видим, что порт 22 занят. Проверим 2233:
#netstat -tulpan | grep 2233 для Ubuntu/Debian
# netstat -anp | grep 2233 для CentOS/AlmaLinux
Вывод пуст, можно занимать.
Меняем порт в конфигурационном файле SSH сервера, воспользоваться можно любым текстовым редактором:
# vim /etc/ssh/sshd_config
# nano /etc/ssh/sshd_config
Port 22
Если строка начинается с символа #, его нужно удалить, и вместо 22 порта написать любой другой, например, 2233. Сохраняем изменения.
Перезапуск SSH
Если вы допустили какую-либо ошибку в конфигурационном файле, то можете потерять связь с сервером. Будьте осторожны. Для начала лучше потренироваться на тестовом сервере. В идеале у вас должен быть альтернативный доступ к серверу, например по VNC.
Debian/Ubuntu
# systemctl restart ssh
CentOS/AlmaLinux
# systemctl restart sshd
Так как текущая сессия SSH ещё активна, можно открыть новое окно и проверить, что подключение по новому порту работает:
# ssh username@ip_address -p2233
Если подключение удалось, то настройки верные. В противном случае что-то не так, и можно проверить конфигурацию в уже открытом подключении.
Проверка
Debian/Ubuntu
# netstat -tulpan | grep ssh
CentOS/AlmaLinux
# netstat -anp | grep ssh
Если все нормально, увидим похожий результат:
tcp 0 0 *:2233 *:* LISTEN 3849/sshd tcp6 0 0 [::]:2233 [::]:* LISTEN 3849/sshd
root sshd 813 3 tcp6 *:2233 *:* root sshd 813 4 tcp4 *:2233 *:*
Готово. Мы сменили стандартный порт SSH на нестандартный, таким образом усилив безопасность своего сервера
Как открыть 22 порт на Убунту?
Добрый день,
Не судите строго за вопрос, нет большого опыта с Убунту.
Дано — после обновления Убунту до версии 20.04.1 c 16, а изначально с 14, не могу подключиться к серверу через 22 порт, до обновления все работало исправно. Подключился через веб консоль, что огранивает читаемость некоторых команд. Проверяю через
Код sudo iptables — L выдает гору нечитаемой информации, в которой даже не могу найти 22 порт.
Через sudo ufw allow ssh открыть не удалось, хотя sudo ufw status показывает ALLOW from Anywhere.
Через sudo iptables -A INPUT -p tcp —dport 22 -j ACCEPT тоже открыть не удалось, ping.eu показывает, что 22 порт закрыт, и никак не получается его открыть. При подключении к серверу — Соединение прервано.
sudo nmap localhost показывает, что открыт только 80 и 443 порты.
Кто-то может дать совет, что делать?- Вопрос задан более двух лет назад
- 11342 просмотра
5 комментариев
Простой 5 комментариев
Статья Как открыть порт ssh с помощью ufw на Ubuntu/Debian Linux
Как разрешить входящие соединения SSH с определенного IP-адреса или подсети на сервере Ubuntu или Debian Linux с помощью ufw?
UFW является аббревиатурой для брандмауэра. Он используется для управления брандмауэром Linux и предназначен для обеспечения простого в использовании интерфейса для пользователя. В этом руководстве вы узнаете, как использовать UFW интерфейс для iptables для открытия входящего соединения SSH на сервере Ubuntu Linux 16.04 LTS или Debian Linux.
Рисунок 01: Разрешить входящий SSH от определенного IP-адреса или подсети
Открыть входящий SSH-порт для всех
Синтаксис выглядит следующим образом:sudo ufw allow ssh$ sudo ufw allow 22/tcpИЛИ (добавьте комментарий)
$ sudo ufw allow 22/tcp comment 'Open port ssh tcp port 22'Если вы запустили ssh на TCP порту # 2222, введите:
$ sudo ufw allow 2222/tcpКак разрешить входящий SSH с определенного IP-адреса
Синтаксис выглядит следующим образом:$ sudo ufw allow from to any port 22Чтобы разрешить входящие SSH-соединения с конкретного IP-адреса с именем 202.54.1.1, введите:
$ sudo ufw allow from 202.54.1.1 to any port 22Как разрешить входящий SSH из определенных подсетей
Синтаксис выглядит следующим образом:$ sudo ufw allow from to any port 22$ sudo ufw allow from to any port 22 proto tcp$ sudo ufw allow from to port 22 proto tcpЧтобы разрешить входящие SSH-соединения из конкретной IP-подсети с именем 202.54.1.1.29, введите:
$ sudo ufw allow from 202.54.1.1/29 to any port 22Чтобы разрешить входящие SSH-соединения из конкретной подсети IP с 10.8.0.0/24 по 10.8.0.1 и tcp-портом 22, введите:
$ sudo ufw allow from 10.8.0.0/24 to 10.8.0.1 port 22 proto tcpОграничить входящий SSH-порт для всех
Откройте входящий SSH, но запретите подключения с IP-адреса, который пытался инициировать 6 или более соединений в течение последних 30 секунд. Синтаксис выглядит следующим образом:$ sudo ufw limit ssh$ sudo ufw limit 22/tcpКак проверить статус ufw
Синтаксис выглядит следующим образом:$ sudo ufw statusПримеры возможных выводов данных:
Status: active To Action From -- ------ ---- 22 ALLOW Anywhere 72.14.190.12 443/tcp ALLOW Anywhere 72.14.190.12 80/tcp ALLOW Anywhereесли ufw не был включен, выход будет следующим:
sudo ufw status Status: inactiveЧтобы включить UFW с набором правил по умолчанию, включая открытый SSH-порт, введите:
$ sudo ufw enable $ sudo ufw status verbose