Сценарий: когда Screen Sharing и SSH — дефолтная связка
В 2026 году малые команды по-прежнему арендуют одно–два физических места на Mac. Кому-то нужны Xcode, Simulator и буфер обмена; остальным — git, swift test, хвосты логов и хуки CI без ожидания «свободного окна» в календаре. Практичный расклад: Screen Sharing для стекла, SSH для оболочки, нередко одновременно.
Связка сильная и опасная: «стеклянная» полоса ощущается эксклюзивной, а shell тихо компилирует в фоне. Если обе полосы трогают одну и ту же macOS-сессию пользователя, появляется вытеснение, которое труднее отлаживать, чем чистый файловый конфликт в SSH: симптомы маскируются под «лагающий VNC», а не под явную ошибку resource busy.
Мини-сравнение намерений. Обзорный текст про выбор транспорта — в материале про SSH/VNC выше; здесь — эксплуатационная приёмка уже выбранной пары протоколов на одном хосте.
Чем этот чеклист отличается от «SSH vs VNC». Мы не ранжируем протоколы для закупки: мы предполагаем нативный стек Apple на столе, фиксируем конкретные порты и бинарники файрвола, отдельно обсуждаем наблюдателя против водителя, заранее описываем конфликт двух людей на одном GUI (в SSH такое реже выглядит как «просто лаг») и связываем календарь стола с flock и Jira-замками, чтобы автоматизация не спорила с человеком за один и тот же DerivedData.
Задержка, полоса и порты файрвола
Screen Sharing тянет поток кадрового буфера: пики привязаны к прокрутке, прозрачности и масштабу Retina. SSH несёт в основном текст и нажатия; при типичном Wi‑Fi или mesh-VPN он остаётся терпимым при большем RTT, пока через тот же туннель не гоняют многогигабайтные scp/rsync.
Держите в runbook короткую таблицу, чтобы дежурный не путал «лаг кодека» с «сломался DNS»:
| Сигнал | Screen Sharing (GUI) | SSH (терминал / файлы) |
|---|---|---|
| Что страдает первым | Потери и джиттер → залипание плиток и «резина» курсора. | RTT → задержка эха; тяжёлый копир по SSH забирает полосу у кодировщика картинки. |
| Ориентир | p95 RTT около 80 мс — комфортная UI-работа; выше ~120 мс сокращайте эксклюзивные GUI-слоты или ближе подводите сеть к узлу. | Shell переносит больший RTT, если избегать болтливых round-trip; ограничьте число параллельных массовых копий. |
| Порты в документации | 3283/tcp для путей управления/наблюдения ARD и встроенного Screen Sharing; часть стеков ещё публикует 5900/tcp в духе VNC — отразите фактический проброс VPN. |
22/tcp для удалённого входа (OpenSSH). ACL mesh лучше строить так, чтобы разрешить SSH и резать латеральное сканирование чужих подсетей. |
Приёмка встроенного межсетевого экрана (только аудит, вывод в вики). На стенде под админом:
# Глобальное состояние
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
# Список приложений, о которых знает файрвол (проверьте sshd и помощники Screen Sharing)
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps
Снимок «Системные настройки → Сеть → Межсетевой экран» после каждого обновления образа. Пороги переподключения для обеих полос удобно согласовать с чеклистом стабильности, задержки и переподключения.
Модель прав: консоль, наблюдатели и границы учёток
Screen Sharing цепляется к миру залогиненного GUI: запросы связки ключей, Simulator и Notification Center исходят из допущения «человек у консоли». Режим наблюдателя снижает риск случайного ввода при разборе инцидента, но не создаёт второе изолированное место macOS — без дисциплины Fast User Switching и раздельных томов инженеры всё ещё делят один контекст стола.
SSH под другим пользователем Unix даёт реальное разделение файлов и фоновых задач, если развести кэши, каталоги подписи и «очереди» автоматизации. Типичный провал приёмки: «SSH-учётка всё равно пишет в домашний каталог GUI-пользователя из-за фермы симлинков».
Снимок defaults (до/после смены образа). Только чтение, ключи меняются между поколениями ОС — сравнивайте diff:
defaults read com.apple.ScreenSharing 2>/dev/null || echo "Нет plist com.apple.ScreenSharing"
sudo defaults read /Library/Preferences/com.apple.RemoteManagement 2>/dev/null || echo "Нет plist RemoteManagement"
Нормы сессий (вставьте в внутренний гайд команды):
- В чате объявляйте водителя и наблюдателей до подключения; наблюдателям — приглушить уведомления.
- Не запускайте с экрана общей учётки
sudo-установщики «на живую» — только образованный стек или MDM. - Учётки автоматизации остаются без GUI-привычки: не заходить на CI-пользователя через Screen Sharing «поправить пару строк».
- Пароли Screen Sharing / VNC-учётки крутите в одном ритме с ротацией доверия к хосту SSH — см. матрицу jump host и ротации SSH-сертификатов.
Параллельные замки сборки и эстафета рабочего стола
Параллельность GUI и SSH — это в первую очередь блокировка рабочих процессов, а не только загрузка CPU. Два инженера в SSH могут сериализовать дерево через flock; один за Screen Sharing и один job CI в SSH всё равно спорят за кэши Xcode, рантаймы симулятора или codesign, пока вы явно не разведёте ресурсы.
Минимальный шаблон — оборачивать разрушающие раннеры:
flock -n /var/tmp/meshmac-nodeA.codesign.lock -c '/usr/local/bin/build_release.sh'
Тикет-ориентированные замки и видимость в Jira согласуйте с матрицей Jira Automation и замков сборки, чтобы язык «у меня стол» совпадал с политикой CI. Если очередь всё ещё двусмысленна, сначала добавьте второй узел, а не третий протокол удалённого доступа.
FAQ по разбору полётов
Экран подключается и сразу отваливается, когда стартует CI. Проверьте, не гоняет ли CI GPU-тяжёлые UI-тесты под той же пользовательской сессией, которую вы показываете по Screen Sharing. Разведите учётки или вынесите UI-тесты на отдельный хост; проверьте MTU в VPN — крупные передачи по SSH могут голодать кодировщик.
Наблюдатель видит секреты в запросах связки ключей — это нормально для аудита? Наблюдателя трактуйте как доверенного инсайдера или размывайте чувствительные диалоги. Для регулируемого кода чаще безопаснее короткие записи экрана с редактированием, чем постоянное «наблюдение вживую».
Файрвол включён: SSH есть, Screen Sharing — чёрный экран. Убедитесь, что разрешён вход для screensharingd и связанных бинарников ARD, а не только sshd. После патчей Apple периодически переклассифицирует помощники — перезапустите проверку socketfilterfw.
Нужны два интерактивных стола одновременно на одном Mac? Без компромиссов в виде двух полноценных GPU-консолей это не продукт Apple по умолчанию. Практика: второе место в пуле, тайм-слоты с явными замками или headless-полосы по SSH. «VDI-уровень» из коробки не ждите.
Связанные материалы: изоляция сеансов tmux, FAQ пула: очередь и квоты, FAQ по SSH/VNC и изоляции сборок для широкой политики.
Итог и шаги без входа
Закрепите связку Screen Sharing + SSH как две полосы одного узла: порты и файрвол, нормы наблюдателя, границы Unix-учёток и те же flock, что в CI. Откройте тарифы MeshMac и справку без входа, вернитесь к главной и к списку блога за соседними матрицами.
Проверьте связку до стандарта команды
Сравните публичные планы и несколько узлов на meshmac.com без логина, уточните паттерны доступа в справочном центре, продолжите с индексом блога и главной.