macOS

Смена порта SSH на macOS: пошаговая инструкция

Этот гайд подробно объясняет, как сменить порт SSH на macOS, чтобы уйти от автоматических атак на стандартный порт 22. Вы научитесь редактировать конфигурацию, перезапускать службу и проверять результат.

Обновлено 16 февраля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:macOS 11.0 (Big Sur) и вышевстроенный SSH-сервер (OpenSSH)

Введение / Зачем это нужно

Стандартный порт SSH (22) хорошо известен злоумышленникам и часто подвергается автоматическим атакам. Смена порта на нестандартный — простой и эффективный способ повысить безопасность вашего сервера, отсекая случайные сканирования. В этом гайде вы измените порт SSH на macOS, сохранив полную функциональность удаленного доступа.

Требования / Подготовка

  • Компьютер с macOS (рекомендуется версия 11.0 Big Sur или новее).
  • Административные права (пароль для sudo).
  • Терминал (встроенное приложение «Терминал» или iTerm2).
  • Убедитесь, что SSH-сервер установлен (он встроен в macOS) и, желательно, уже запущен.

Шаг 1: Проверьте статус SSH-сервера

Сначала убедитесь, что SSH-сервер (демон sshd) активен. Откройте Терминал и выполните:

sudo systemsetup -getremotelogin

Если вы видите Remote Login: On — сервер работает. Если Remote Login: Off, включите его:

sudo systemsetup -setremotelogin on

💡 Совет: После включения может потребоваться 5-10 секунд, прежде чем сервер начнет слушать порт.

Шаг 2: Создайте резервную копию конфигурационного файла

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

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

Шаг 3: Измените порт в конфигурации SSH

Основной конфигурационный файл SSH-сервера — /etc/ssh/sshd_config. Откройте его в текстовом редакторе (например, nano):

sudo nano /etc/ssh/sshd_config

В открывшемся файле найдите строку, начинающуюся с #Port 22. Уберите символ комментария (#) и измените 22 на желаемый порт. Например:

Port 2222

Выбирайте порт в диапазоне 1024–65535, который не занят другими службами. Избегайте портов, зарезервированных для распространенных сервисов (например, 3306 для MySQL, 5432 для PostgreSQL).

Сохраните изменения: в nano нажмите Ctrl+O, затем Enter, и выйдите (Ctrl+X).

⚠️ Важно: Убедитесь, что в файле нет других строк с директивой Port. Если такие строки есть, закомментируйте их (добавьте # в начало) или удалите, оставив только одну активную.

Шаг 4: Перезапустите SSH-сервис

Чтобы изменения вступили в силу, перезапустите SSH-демон. Выполните в Терминале:

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

Эти команды выгружают и заново загружают службу SSH, применяя новую конфигурацию.

💡 Совет: На очень старых версиях macOS (до 10.10) могут потребоваться другие команды: sudo launchctl stop com.openssh.sshd и sudo launchctl start com.openssh.sshd.

Шаг 5: Проверьте, что SSH слушает на новом порту

Убедитесь, что SSH-сервер теперь слушает на указанном вами порту:

sudo lsof -i -P | grep LISTEN | grep ssh

В выводе должна появиться строка, содержащая ваш порт (например, *:2222). Если порт не отображается, перепроверьте конфигурационный файл и перезапустите службу.

Также попробуйте подключиться локально, чтобы убедиться в работоспособности:

ssh -p 2222 username@localhost

Замените 2222 на ваш порт и username на ваше имя пользователя macOS. При успешном подключении вы увидите приглашение командной строки.

Возможные проблемы

Ошибка: «Connection refused» или «Connection timeout»

  • Причина: SSH-сервер не запущен или не слушает на указанном порту.
  • Решение: Проверьте статус сервера (Шаг 1) и правильность порта (Шаг 5). Убедитесь, что в конфиге только одна директива Port.

Ошибка: «Permission denied (publickey,password)»

  • Причина: Неверные учетные данные или отсутствие настроенных SSH-ключей.
  • Решение: Проверьте логин и пароль. Если используете ключи, убедитесь, что публичный ключ добавлен в ~/.ssh/authorized_keys и имеет права 600.

Брандмауэр блокирует подключение

  • Причина: Если вы настраивали правила брандмауэра вручную (например, через pf), новый порт может быть заблокирован.
  • Решение: Добавьте правило для нового порта в /etc/pf.conf и перезагрузите pf:
    echo "pass in proto tcp from any to any port 2222" | sudo pfctl -f -
    sudo pfctl -e
    
    Замените 2222 на ваш порт. Если используете стандартный application firewall (Системные настройки → Защита и безопасность → Брандмауэр), он работает по приложению, а не по порту. Поэтому, если SSH уже разрешен, порт открыт автоматически.

Не удается подключиться с удаленного компьютера

  • Причина: Роутер или облачный провайдер не пропускает трафик на новый порт.
  • Решение: Настройте проброс портов (port forwarding) на роутере или в панели управления облачного сервиса (AWS Security Groups, Google Cloud Firewall Rules) для нового порта.

После смены порта SSH больше не работает

  • Причина: Синтаксическая ошибка в конфигурационном файле или конфликт портов.
  • Решение: Восстановите резервную копию:
    sudo cp /etc/ssh/sshd_config.backup /etc/ssh/sshd_config
    sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
    sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
    
    Затем проверьте конфиг на синтаксис: sudo sshd -t (выведет ошибки, если есть).

SIP (System Integrity Protection) мешает редактированию?

  • Причина: Начиная с macOS El Capitan, SIP защищает системные файлы. Однако /etc/ssh/sshd_config не защищен и редактируется с sudo без проблем. Если вы столкнулись с ошибкой доступа, убедитесь, что используете sudo и правильный путь.

Проверка результата

После выполнения всех шагов вы должны успешно подключаться к SSH-серверу на новом порту. Проверьте:

  1. Локальное подключение: ssh -p <новый_порт> username@localhost.
  2. Удаленное подключение (если нужно): с другого устройства используйте ssh -p <новый_порт> username@ваш_ip.

Если оба способа работают, порт успешно изменен.

Дополнительные рекомендации

  • Обновите все скрипты, конфигурации и закладки, где используется SSH, указав новый порт.
  • Рассмотрите использование SSH-ключей вместо паролей для дополнительной безопасности.
  • Регулярно обновляйте macOS и пакеты OpenSSH через «Системные настройки → Обновление ПО».
  • Для еще большей безопасности настройте fail2ban или подобные инструменты для блокировки повторяющихся попыток входа.

Теперь ваш SSH-сервер на macOS работает на нестандартном порту, что значительно снижает риски автоматических атак. Не забывайте запомнить новый порт и обновлять клиентские настройки.

Часто задаваемые вопросы

Как проверить, что SSH-сервер запущен на macOS?
Что делать, если после смены порта не могу подключиться?
Как вернуть стандартный порт 22?
Нужно ли открывать порт в брандмауэре macOS?

Полезное

Проверьте статус SSH-сервера
Создайте резервную копию конфигурации
Измените порт в конфигурационном файле
Перезапустите SSH-сервис
Проверьте, что SSH слушает на новом порту