Введение / Зачем это нужно
Включение SSH (Secure Shell) на macOS превращает ваш компьютер в сервер, к которому можно безопасно подключаться с другого устройства (другой Mac, Linux-машина или ПК с Windows) для удалённого управления через командную строку. Это незаменимо для:
- Администрирования серверов или рабочих станций без физического доступа.
- Быстрого копирования файлов между компьютерами с помощью
scpилиrsync. - Запуска скриптов и задач на Mac, находящемся в другом месте.
- Разработки и отладки сетевых приложений.
macOS поставляется с готовым к использованию SSH-сервером (демон sshd), который нужно лишь активировать. Этот гайд покажет, как это сделать безопасно и проверить результат.
Требования / Подготовка
Перед началом убедитесь, что:
- У вас есть учётная запись с правами администратора на целевом Mac.
- Вы знаете логин (имя пользователя) и пароль от этой учётной записи.
- Целевой Mac подключён к сети (Wi-Fi или Ethernet) и имеет IP-адрес, который вы можете узнать в «Системных настройках» → «Сеть».
- На компьютере, с которого будет происходить подключение, установлен SSH-клиент (на macOS и Linux он есть по умолчанию; для Windows 10/11 используйте
sshв PowerShell или терминале).
⚠️ Важно: Включение SSH открывает порт 22 для входящих подключений. Убедитесь, что ваш пароль на учётную запись надёжный, и рассмотрите настройку аутентификации по SSH-ключам вместо пароля для повышенной безопасности.
Пошаговая инструкция
Есть два основных способа активировать SSH-сервер: через удобный графический интерфейс и через Терминал. Рекомендуется использовать первый способ, если вы только начинаете.
Шаг 1: Активация через «Системные настройки» (Рекомендуется)
Это самый простой и наглядный метод.
- На целевом Mac откройте меню Apple (🍎) и выберите «Системные настройки» (System Settings).
- В боковой панели найдите и выберите раздел «Общий доступ» (Sharing).
- В списке служб общего доступа найдите «Удалённый вход» (Remote Login).
- Поставьте галочку в чекбоксе слева от названия службы.
- Справа вы можете настроить, каким пользователям разрешён доступ: «Все пользователи» или только выбранным из списка. Для безопасности лучше выбрать конкретных пользователей.
- Система может запросить ввод пароля администратора для подтверждения изменений.
После этого служба SSH автоматически запустится и будет запускаться при каждой загрузке системы.
Шаг 2: Активация через Терминал (Альтернативный способ)
Этот метод полезен для автоматизации, удалённого управления через уже существующее SSH-подключение или если графический интерфейс недоступен.
- Откройте приложение «Терминал» (Terminal) на целевом Mac.
- Введите следующую команду и нажмите
Enter:sudo systemsetup -setremotelogin on - Система запросит пароль администратора. Введите его (символы не отображаются) и нажмите
Enter. - Вы увидите подтверждение:
Remote Login: On.
Как отключить SSH? Используйте команду sudo systemsetup -setremotelogin off.
Шаг 3: Проверка статуса службы
Чтобы убедиться, что SSH-сервер действительно работает, выполните одну из команд:
# Проверка через systemsetup (рекомендуется)
sudo systemsetup -getremotelogin
# Или проверка через launchctl (увидите PID процесса)
sudo launchctl list | grep ssh
# Или простейшая проверка — послушать, слушает ли система порт 22
sudo lsof -i :22
Первая команда вернёт Remote Login: On. Вторая покажет строку с PID (идентификатором процесса) com.openssh.sshd. Третья отобразит активное прослушивание порта 22 процессом sshd.
Шаг 4: Тестирование локального подключения
Прежде чем пытаться подключаться с другого компьютера, проверьте сервер «на месте».
- В том же или новом окне Терминала на целевом Mac выполните:
Заменитеssh ваш_логин@localhostваш_логинна короткое имя вашей учётной записи (можно узнать черезwhoami). - При первом подключении вы увидите сообщение о неизвестном хосте — введите
yesи нажмитеEnter. - Система запросит пароль для учётной записи
ваш_логин. Введите его. - Если вы увидите приглашение командной строки нового хоста (например,
MacBook-Pro-ivan:~ ivan$), значит, SSH-сервер работает корректно. - Для выхода из сессии выполните
exit.
Шаг 5: Настройка брандмауэра (Критически важно для внешних подключений)
Если вы планируете подключаться к вашему Mac извне локальной сети (из интернета), настройка брандмауэра в macOS обязательна.
- Перейдите в «Системные настройки» → «Сеть» (Network).
- Нажмите кнопку «Брандмауэр» (Firewall) внизу окна.
- Нажмите «Параметры» (Options) или «Настроить» (Customize).
- В появившемся окне найдите в списке «Удалённый вход» (Remote Login) и убедитесь, что статус — «Разрешён входящие подключения» (Allow incoming connections).
- Нажмите «ОК», затем «Применить».
Без этого шага все входящие подключения на порт 22 будут блокироваться системным брандмауэром.
Проверка результата
Главный признак успешной настройки — возможность подключиться к вашему Mac по SSH с другого устройства.
- С другого компьютера в той же локальной сети откройте терминал.
- Узнайте локальный IP-адрес вашего Mac: в «Системных настройках» → «Сеть» → «Подробно» → «TCP/IP». Адрес будет вида
192.168.x.xили10.0.x.x. - Выполните команду подключения:
Пример:ssh ваш_логин@IP_адрес_Macssh ivan@192.168.1.15. - Введите пароль при запросе. Успешное подключение и появление приглашения командной строки означают, что всё настроено верно.
💡 Совет: Для постоянного использования настройте аутентификацию по SSH-ключам. Это безопаснее пароля и удобнее. Инструкцию смотрите в статье «Генерация и настройка SSH-ключей на macOS».
Возможные проблемы
- «Connection refused» или «No route to host»:
- Причина: SSH-сервер не запущен или брандмауэр блокирует порт.
- Решение: Повторите Шаг 3 и Шаг 5. Убедитесь, что в брандмауэре разрешён «Удалённый вход».
- «Permission denied (publickey,password)»:
- Причина: Неверный логин или пароль. Или в настройках сервера (
/etc/ssh/sshd_config) отключена аутентификация по паролю (PasswordAuthentication no). - Решение: Проверьте логин. Если вы настраивали аутентификацию по ключу, убедитесь, что публичный ключ добавлен в
~/.ssh/authorized_keysна целевом Mac.
- Причина: Неверный логин или пароль. Или в настройках сервера (
- Не могу подключиться извне локальной сети (из интернета):
- Причина: Роутер не перенаправляет (пробрасывает) внешний порт 22 на внутренний IP-адрес вашего Mac.
- Решение: Настройте Port Forwarding (проброс портов) в веб-интерфейсе вашего роутера: внешний порт 22 → внутренний IP-адрес Mac : порт 22. Учтите, что это снижает безопасность. Лучше использовать нестандартный внешний порт (например, 2222) и изменить порт SSH на Mac (см. FAQ).
- SSH-сервер перестаёт работать после перезагрузки:
- Причина: Демон
sshdне настроен на автозапуск. Обычно это происходит, если служба была запущена вручную, а не через системные настройки. - Решение: Активируйте SSH через «Системные настройки» (Шаг 1). Это гарантирует регистрацию демона в
launchdдля автозапуска. Либо выполнитеsudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist.
- Причина: Демон