«Сначала разреши Mac’у немного обнажиться»
Для начала — настрой сам Mac. Без этого он будет как ворчливая бабка у подъезда — ничего не пустит.
- Открой:
Системные настройки → Общий → Общий доступ (или Sharing, если по-английски) - Включи галочку "Удалённый вход" (Remote Login)
Это активирует SSH-сервер — без него ты сможешь только мысленно подключиться к Mac (что бесполезно, поверь). - Убедись, что пользователь, к которому ты хочешь подключаться, имеет пароль (а не «отпечаток пальца и ласковое слово»).
- Не забудь про настройки энергосбережения, чтобы мак не уснул в самый нужный момент.
Рекомендуемые способы перезагрузки и выключения Mac удалённо:
1. Через shutdown (рекомендуется)
macOS поддерживает стандартную утилиту shutdown, как в Unix:
Выключить:
sudo shutdown -h now
- Перезагрузить:
sudo shutdown -r now
Если нужно выполнить через SSH — просто подключитесь и введите эти команды. sudo обязательно, и вам потребуется пользователь с правами администратора.
2. Через osascript (AppleScript из командной строки)
Если вы не хотите использовать shutdown, можно использовать AppleScript:
- Выключение:
osascript -e 'tell application "System Events" to shut down'
- Перезагрузка:
osascript -e 'tell application "System Events" to restart'
⚠️ Требует, чтобы вы запускали от пользователя, у которого есть GUI-сессия, и чтобы System Events имел доступ. Лучше использовать из GUI-терминала или из GUI-автоматизации (не через SSH).
3. Через launchctl (если не работает reboot)
Иногда reboot не работает из-за SIP (System Integrity Protection). Можно использовать launchctl:
Перезагрузка:
sudo launchctl reboot system
- Выключение:
sudo launchctl poweroff
Эти команды работают только в новых версиях macOS и при наличии нужных прав. sudo обязателен.
4. Проверка наличия System Integrity Protection (если команды не работают)
Если reboot не срабатывает с Operation not permitted, возможно, включён SIP:
Проверьте его статус:
csrutil status
SIP можно отключить только через recovery mode, но это не рекомендуется, если нет крайней необходимости.
🔐 Проверьте, есть ли у пользователя sudo-права
Убедитесь, что пользователь может выполнять sudo, и что нет ограничений в /etc/sudoers.
Пример: как корректно перезагрузить Mac через SSH
ssh user@macname
sudo shutdown -r now
Надеюсь, этот гайд поможет тебе не ехать в командировку в другой город или бежать на другой этаж офисного здания, чтобы ребутнуть или выключить яблочный девайс твоего шефа.