Как включить и использовать SSH на Mac

SSH (Secure Shell) — это зашифрованный сетевой протокол для безопасного удалённого доступа к компьютеру. Он заменяет старые небезопасные протоколы (FTP, telnet и т. п.) и широко используется администраторами, разработчиками и продвинутыми пользователями для управления серверами, безопасной передачи файлов и туннелирования трафика.
Коротко о ключевых свойствах SSH:
- Работает по умолчанию на порту 22 (можно изменить).
- Использует симметричное/асимметричное шифрование; для аутентификации часто применяют SSH-ключи.
- Доступен в macOS, Linux и Unix-системах по умолчанию.
Почему стоит использовать SSH
- Безопаснее паролей при правильной настройке (используйте ключи и отключите парольную аутентификацию для важной инфраструктуры).
- Универсальность: удалённый shell, SCP/SFTP для передачи файлов, создание защищённых туннелей.
- Широкая поддержка на всех платформах и в инструментах вроде Git (для безпарольной авторизации на GitHub).
Где включается SSH на Mac
Apple предоставляет встроенный SSH-сервер на macOS. Его можно включить через графический интерфейс или Терминал.
Шаги в графическом интерфейсе (macOS Ventura и новее):
- Откройте Системные настройки.
- Перейдите в General > Sharing (Общие > Службы).
- Включите переключатель Remote Login (Удалённый вход).
- Нажмите кнопку i рядом с Remote Login, чтобы увидеть команду входа, например:
ssh username@192.168.0.44В дополнительных настройках можно разрешить полный доступ к диску для удалённого пользователя и задать, какие учётные записи имеют доступ.
Включение SSH через Терминал
Чтобы включить Remote Login из командной строки, выполните в Терминале:
# Включить SSH-сервер
sudo systemsetup -setremotelogin on
# Проверить статус
sudo systemsetup -getremotelogin
# Отключить SSH-сервер
sudo systemsetup -setremotelogin offЕсли macOS запрашивает администраторский пароль — введите его.
Как подключиться к Mac по SSH с другого устройства
Для подключения вам нужен доступ в ту же сеть или проброшенный порт/публичный IP. Пример подключения из Android (Termius) или любого терминала:
- Узнайте команду входа в настройках Remote Login или выполните в Терминале Mac:
whoami # ваше имя пользователя
ipconfig getifaddr en0 # пример для Wi‑Fi: покажет локальный IP
# команда входа выглядит как
ssh username@192.168.0.44- На Android установите Termius или любой терминал/эмулятор, в котором есть SSH.
- Введите команду ssh username@ip и подтвердите соединение.
- При запросе введите пароль учётной записи macOS или используйте SSH-ключ.
После подключения вы получаете доступ к файловой системе и можете выполнять стандартные команды: ls, cd, mkdir, rm, cp и т. д.
Как настроить SSH-ключи на macOS (рекомендуется)
Генерация ключей и установка публичного ключа на целевой Mac позволяет обходиться без пароля и повышает безопасность.
- На клиентской машине (например, на ноутбуке или Android с завершённым терминалом) выполните:
ssh-keygen -t ed25519 -C "your_email@example.com"
# или для совместимости:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"- Скопируйте публичный ключ на Mac (если на клиенте доступна утилита ssh-copy-id):
ssh-copy-id username@mac_ipЕсли ssh-copy-id недоступна, используйте команду через SSH:
cat ~/.ssh/id_ed25519.pub | ssh username@mac_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"- Проверьте подключение:
ssh username@mac_ip- Опционально: на Mac в /etc/ssh/sshd_config отключите PasswordAuthentication и включите PermitRootLogin no для повышения безопасности (редактирование требует прав администратора). После правки перезапустите службу SSH:
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plistПримечание: синтаксис перезапуска может отличаться в версиях macOS; перезагрузка компьютера также применит изменения.
Рекомендации по безопасности
Important: SSH сам по себе безопасен, но его конфигурация определяет уровень риска. Минимальный набор мер:
- Используйте SSH-ключи ed25519 или RSA 4096.
- Отключите аутентификацию по паролю для рабочих серверов.
- Ограничьте доступ по конкретным пользователям в System Settings или через AllowUsers в sshd_config.
- При необходимости поменяйте порт по умолчанию (например, на 2222) и настройте правила брандмауэра.
- Включите двухфакторную аутентификацию там, где это возможно.
- Отключайте Remote Login, когда не нужен.
Ограничение доступа и брандмауэр
macOS имеет встроенный Application Firewall и возможности pf для продвинутых правил. Для простоты:
- Разрешите входящие соединения для SSH в Системных настройках > Сеть > Брандмауэр или добавьте правило в pf.
- Используйте маршрутизатор/брандмауэр для ограничения доступа по IP, если доступ нужен только из домашней/офисной сети.
Когда SSH может не работать и как исправлять
Типичные причины и шаги проверки:
- Не тот IP/интерфейс: используйте ipconfig getifaddr en0 или en1 и проверьте локальный IP.
- SSH отключён: проверьте sudo systemsetup -getremotelogin.
- Брандмауэр блокирует порт 22: временно отключите брандмауэр или добавьте правило.
- Неправильные права на ~/.ssh или authorized_keys: папке ~/.ssh должно быть 700, файлу 600.
- Конфликт порта: убедитесь, что порт не занят другим процессом.
Примеры команд для диагностики
# Проверить слушает ли sshd
sudo lsof -iTCP -sTCP:LISTEN -P | grep ssh
# Показать список пользователей с правом удалённого входа
# Через графический интерфейс: System Settings > General > Sharing > Remote Login
# Проверить права каталогов и файлов SSH
ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keysМини‑методология безопасного включения SSH (шаги)
- Включите Remote Login локально через System Settings или sudo systemsetup -setremotelogin on.
- Сгенерируйте SSH-ключ на клиенте и установите публичный ключ на Mac.
- Проверьте подключение и права доступа к ~/.ssh.
- Ограничьте доступ по пользователям и/или IP.
- Отключите PasswordAuthentication в /etc/ssh/sshd_config для сервера, где это допустимо.
- Отключайте Remote Login, когда не нужен.
Контрольный список для ролей
Администратор:
- Включил Remote Login при необходимости
- Настроил SSH-ключи для всех администраторов
- Отключил PasswordAuthentication
- Ограничил доступ по IP или списку пользователей
- Проверил логи на предмет неудачных попыток входа
Пользователь:
- Сгенерировал локальный ключ ed25519
- Убедился в правах ~/.ssh
- Подключился и проверил доступ к нужным файлам
Критерии приёмки
- Удалённый вход работает с SSH-ключем без запроса пароля.
- При отключённом Remote Login вход невозможен.
- Права на ~/.ssh и authorized_keys корректны (700/600).
- Парольная аутентификация отключена (если это требование безопасности).
Когда не стоит полагаться на SSH
- Для передачи больших объёмов данных стоит использовать специализированные решения (например, rsync через SSH или SFTP с оптимизацией).
- Для графических приложений лучше использовать VNC/РДС с TLS‑туннелированием.
Мермайд-диаграмма принятия решения
flowchart TD
A[Нужно удалённое управление Mac?] -->|Да| B[Есть локальный доступ к Mac?]
B -->|Да| C[Включить Remote Login и настроить ключи]
B -->|Нет| D[Настроить проброс портов или VPN]
C --> E[Ограничить доступ по пользователям/IP]
D --> E
E --> F[Тестировать подключение и мониторить логи]Итог
SSH на Mac — простой и надёжный инструмент для удалённого доступа и управления. Включите Remote Login только при необходимости, используйте SSH‑ключи вместо паролей, ограничьте доступ и следите за логами. После работы отключайте Remote Login, чтобы снизить поверхность атаки.
Короткое объявление: Включить SSH на Mac можно за две минуты: System Settings → General → Sharing → Remote Login. Для безопасности используйте ed25519‑ключи и выключайте Remote Login, когда он не нужен.
Похожие материалы
Как сделать бэкап и восстановить WhatsApp из Google Drive
Как отправить сообщение многим в WhatsApp
Как блокировать приложения на Android — Hexlock
Как показывать презентацию PowerPoint в Microsoft Teams
Скрыть превью WhatsApp на iPhone