Удалённый доступ · сначала подключение, затем сборка

Подключитесь к облачному Mac

Используйте VNC для графического интерфейса macOS, а SSH — для скриптов и CI. В вашем распоряжении выделенный физический Mac, а не виртуальная машина: отлаживайте в Xcode и запускайте автоматические сборки удобным способом.

Уже арендовали сервер? Подготовьте адрес хоста, SSH-порт, имя пользователя и данные для подключения. Ниже рекомендуем использовать SSH-туннель для VNC.

Графический интерфейс
Общий экран VNC
Выполнение команд
SSH / runner
Графическая среда macOS Пример после подключения
Проект Xcode Проверка Release-сборки

Графический интерфейс и командная строка на одном физическом узле

BuildSettings.xcconfigRelease
CONFIGURATION = Release
SDKROOT = iphoneos
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
ENABLE_TESTABILITY = NO
АрхивацияПодписаниеЭкспорт
Предпросмотр симулятора
Проверка интерфейса Макет · взаимодействие
VNC: просмотр и управление рабочим столом SSH: запуск команд сборки
Схема рабочей среды, а не текущий экран или показатель производительности. Интерфейс системы и версии инструментов зависят от конфигурации хоста.
Выберите способ подключения

Нужно видеть экран или только запускать команды?

При первой настройке инструментов воспользуйтесь общим экраном, чтобы проверить графические параметры. Когда конвейер стабилизируется, runner сможет работать через командную строку. Оба способа подключают к одному хосту — отдельная среда сборки для графической работы не нужна.

Графический интерфейс

Общий экран VNC

Подходит для работы в Xcode, проверки симулятора и настроек Keychain, а также для действий, требующих мыши. Вы видите экран удалённого хоста — компиляция при этом не выполняется на вашем компьютере.

  • Для начала выберите один монитор и умеренное разрешение. Проверьте ввод текста, работу мыши и клавиатуры.
  • Рекомендуем подключаться через SSH-туннель, не открывая порт VNC в интернете.
  • Отключение клиента не выключает хост. Длительные задачи поручайте CI или запускайте в сессии, к которой можно вернуться.
Для чего подходит: отладка интерфейса, первоначальная настройка, интерактивная диагностика
Командная строка

SSH и self-hosted runner

Подходит для установки зависимостей, запуска xcodebuild, анализа логов и регистрации CI runner. SSH не передаёт изображение рабочего стола, поэтому для обычной работы со скриптами не нужно держать VNC подключённым.

  • При первом подключении проверьте отпечаток хоста, затем подтвердите ключ хоста.
  • Для интерактивного управления используйте SSH-ключ. Для автоматизации создавайте отдельные учётные данные, которые можно отозвать.
  • Для непрерывных сборок используйте службу runner — не нужно постоянно держать терминал на ноутбуке открытым.
Для чего подходит: автоматические сборки, управление зависимостями, диагностика логов

Не путайте пароль рабочего стола VNC, пароль для входа по SSH и парольную фразу закрытого SSH-ключа. Если подключиться не удаётся, сначала проверьте, для какого протокола предназначены данные для входа, и лишь затем меняйте настройки клиента.

Клиент macOS

Подключитесь через Finder, а затем откройте общий экран

Сначала настройте SSH-туннель, как описано ниже, и подключитесь по локальному адресу перенаправления. Так данные VNC передаются по зашифрованному каналу, а удалённый порт рабочего стола не нужно открывать отдельно.

  1. 01

    Проверьте данные хоста

    Войдите в панель управления и найдите данные для подключения к нужному экземпляру. Запишите адрес хоста, SSH-порт и имя пользователя; данные VNC проверьте отдельно. Если адрес или порт отличаются от примера, используйте фактические данные экземпляра.

  2. 02

    Не закрывайте туннель

    Выполните команду перенаправления из этого руководства в локальном терминале. При использовании команды -N отсутствие интерактивного приглашения после успешного подключения — это нормально. Не закрывайте терминал. Если появилась ошибка, сначала устраните её и только потом подключайтесь к рабочему столу.

  3. 03

    Укажите адрес VNC

    В Finder выберите «Переход → Подключиться к серверу» или нажмите ⌘ Kи введите адрес vnc://127.0.0.1:15900. Откроется приложение «Общий экран». Следуйте подсказкам и введите данные для подключения к удалённому VNC.

  4. 04

    Сначала проверьте подключение, затем настройте изображение

    Убедитесь, что можете пользоваться Finder, вводить текст и открывать Xcode. Для управления выберите режим управления, а не только просмотра. Если изображение не помещается в локальное окно, сначала включите масштабирование, а затем настройте качество с учётом сети.

Адрес loopback доступен только на компьютере, где запущен туннель. Чтобы открыть просмотрщик на другом компьютере, отдельно создайте туннель и на нём. Локальное подключение с первого компьютера использовать не получится.

Клиенты Windows и Linux

Укажите хост и порт отдельно; начните с умеренного качества

Используйте VNC-клиент, например TigerVNC. В Windows для туннеля можно использовать OpenSSH, в Linux — команду ssh в терминале. Затем подключитесь к локальному порту перенаправления через графический VNC-клиент.

Windows: сначала запустите SSH, затем откройте клиент VNC

Выполните команду туннеля в PowerShell или Windows Terminal. Если система сообщает, что команда sshне найдена, проверьте, установлен ли компонент клиента OpenSSH.

В поле хоста VNC-клиента укажите 127.0.0.1, а в поле порта — 15900. Некоторые клиенты воспринимают число после одиночного двоеточия как номер дисплея. Если доступно только одно поле адреса, используйте формат клиента для явного указания порта.

Раскладка клавиатуры: сначала проверьте клавиши Command, Option и основные сочетания.

Linux: проверяйте туннель и изображение отдельно

Оставьте SSH-туннель запущенным в одном терминале, а затем откройте графический VNC-клиент. Если туннель завершился, ошибка подключения клиента к локальному порту не означает, что неверен пароль удалённого рабочего стола.

Если устанавливаете клиент через менеджер пакетов, выберите версию с поддержкой нужного способа удалённой аутентификации. При сообщении «Неподдерживаемый тип безопасности» сначала проверьте совместимость, а не отключайте аутентификацию и не ослабляйте настройки безопасности сервера.

Проверка сети: убедитесь, что клиент подключается к локальному порту перенаправления.
Это исходные настройки клиента, а не гарантия качества изображения или частоты кадров. Названия параметров зависят от версии клиента.
Параметр Рекомендация для начала Когда менять
Глубина цвета Автоматический выбор; при ограниченной пропускной способности попробуйте 16 бит Для проверки снимков экрана, цветов или мелкого текста выберите полный цветовой режим. Снижение глубины цвета не подходит для точной проверки цветов.
Кодирование и сжатие Оставьте автоматическое кодирование и включите адаптивное сжатие Если окна заметно притормаживают при перетаскивании, немного увеличьте сжатие. Если текст становится размытым, уменьшите сжатие с потерями.
Размер рабочего стола Начните с 1440 × 900 или 1600 × 900 Повышайте разрешение, только когда убедитесь, что взаимодействие работает стабильно. Так вначале не придётся передавать много участков изображения высокого разрешения.
Постоянное обновление Используйте адаптивное обновление и отключите ненужное постоянное обновление Повышайте частоту обновления только при диагностике динамического интерфейса. Для редактирования кода обновление изображения с частотой видео не требуется.
Буфер обмена Включайте при необходимости; при работе с конфиденциальными данными отключайте синхронизацию Прежде чем копировать пароль сертификата или другие данные для входа, проверьте направление синхронизации между локальной и удалённой системами.
Рекомендуемый способ подключения

Передавайте VNC через SSH-туннель

Адрес ниже приведён только для документации — подключиться по нему нельзя. Замените 192.0.2.10,macuser и порт на фактические данные из панели управления. В примере предполагается, что удалённая служба VNC прослушивает порт 5900 на самом хосте.

Локальный клиент127.0.0.1:15900
Зашифрованный SSH-туннельАдрес хоста и порт SSH
Удалённая служба VNC127.0.0.1:5900
Выполните на своём компьютере
ssh -N -T -L 127.0.0.1:15900:127.0.0.1:5900 -o ExitOnForwardFailure=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -p 22 macuser@192.0.2.10

Что делает эта команда

-L Прослушивает только локальный loopback-адрес: первый порт — локальная точка входа, последний — порт удалённой службы VNC.-p Указывает порт SSH, а не VNC.-N -T Передаёт трафик, не открывая удалённый интерактивный терминал.

Как проверить подключение и закрыть туннель

При первом подключении проверьте отпечаток SSH. После успешного подключения откройте клиент на локальном порту. Нажмите Ctrl C , чтобы закрыть туннель. Если локальный порт уже занят, замените 15900 на другой свободный порт и измените адрес в клиенте.

Устраняйте ошибки на соответствующем уровне

При тайм-ауте проверьте адрес, SSH-порт и ограничения на подключение. При ошибке аутентификации проверьте имя пользователя и ключ. Если целевой адрес перенаправления отклоняет соединение, проверьте удалённую службу VNC и её порт. Не пытайтесь решать любую проблему подключения многократной сменой пароля.

Сначала проверьте вход по ключу, затем отключите вход по паролю

Создайте отдельный ключ Ed25519 для этого компьютера и задайте парольную фразу для закрытого ключа. Добавьте только содержимое открытого ключа в файл удалённого пользователя ~/.ssh/authorized_keys. Закрытый ключ храните на своём компьютере — не загружайте его на хост, в репозиторий или в заявку.

Если ключ с таким именем уже существует, не перезаписывайте его. Используйте новое имя файла и при подключении укажите ключ с помощью параметра -i . Файл открытого ключа оканчивается на .pub , у файла закрытого ключа такого суффикса нет.

Создайте отдельный ключ для подключения
ssh-keygen -t ed25519 -a 64 -f ~/.ssh/armrdp_ed25519

В macOS и Linux для каталога удалённого пользователя ~/.ssh обычно задают права 700, а для файлаauthorized_keys — права 600. На Windows ограничьте доступ к локальному закрытому ключу с помощью прав доступа к файлу — не копируйте команды Unix для настройки разрешений.

Изображение и сеть

Сначала уменьшите нагрузку на изображение, затем оцените сетевой маршрут

Компиляция выполняется удалённо, но скорость отклика рабочего стола зависит от локальной сети, маршрутизации между сетями, разрешения и количества изменений на экране. Не считайте, что скорость перетаскивания окна в VNC показывает производительность сборки на хосте, и не оценивайте задержку только по географическому расстоянию.

  1. 01

    Сначала уменьшите изображение

    Оставьте один монитор и сократите число анимаций в окнах, динамических фонов и элементов рабочего стола высокого разрешения. Изменение размера удалённого рабочего стола сокращает объём передаваемых данных эффективнее, чем простое уменьшение окна локального клиента.

  2. 02

    Меняйте по одному параметру

    Проверяйте разрешение, глубину цвета и сжатие по очереди. Каждый раз повторяйте одно и то же действие — например, открывайте один проект или перетаскивайте одно окно. Если менять несколько параметров одновременно, будет трудно понять, какой из них помог.

  3. 03

    Затем проверьте сетевой маршрут

    Приостановите передачу больших файлов с локального компьютера и по возможности используйте стабильное проводное подключение. Сравните отклик SSH и обновление изображения VNC: если SSH работает быстро, а изображение запаздывает, сначала проверьте настройки отображения, а не спешите менять тип хоста.

Справочная информация о пяти локациях и их часовых поясах. Это не результаты измерения задержки в каждом городе; доступность проверяйте в панели управления.
Локация Местный часовой пояс Что учитывать при выборе
Сингапур UTC+8 Если основная часть команды находится в Юго-Восточной Азии, начните проверку подключения с этой локации.
Япония (Токио) UTC+9 Если основная часть команды находится в Японии или Восточной Азии, сравните фактические сетевые маршруты до этой локации.
Южная Корея (Сеул) UTC+9 Если основная часть команды находится в Южной Корее или Северо-Восточной Азии, учитывайте маршрутизацию оператора связи.
Гонконг UTC+8 Если основная часть команды находится в Южном Китае или Юго-Восточной Азии, проверьте удобство работы и маршрут до репозитория.
Запад США UTC−8 / UTC−7 Рассмотрите эту локацию, если команда находится на западном побережье Северной Америки. Часовой пояс меняется при переходе на летнее время.

Если графический интерфейс нужен лишь для редких настроек, при выборе локации также учитывайте маршрут до репозитория, кеша зависимостей и места загрузки артефактов. Для постоянных сборок важнее стабильность инструментов и конвейера; держать VNC подключённым всю ночь не нужно.

Безопасность подключения

Ужесточайте доступ, сохраняя возможность проверить подключение

Настройки удалённого доступа важно менять в правильном порядке. Сначала убедитесь, что новый способ работает, и только затем отключайте старый. Не меняйте одновременно ключи, адреса подключения и параметры аутентификации — иначе будет сложно определить причину сбоя.

Перед отключением входа по паролю

Не закрывайте текущую SSH-сессию. Откройте ещё один терминал, подключитесь с указанным закрытым ключом и проверьте, что у вас есть нужные права администратора. Затем измените настройки парольной аутентификации SSH. Перед применением проверьте синтаксис конфигурации и используйте способ управления службами, предусмотренный в вашей системе.

Условие успеха: в новой сессии работает вход по открытому ключу и выполняются необходимые команды.

Перед ограничением доступа по IP

Сначала проверьте, закреплён ли за вашим подключением внешний IP-адрес. Затем разрешите этот адрес в правилах доступа подходящей сети или хоста. Не считайте временный внешний адрес домашней сети постоянным и не применяйте команды брандмауэра к интерфейсу, в назначении которого вы не уверены.

Условие успеха: подключение доступно из разрешённых сетей, а из остальных источников соответствующие порты недоступны.

Регулярно меняйте учётные данные

Используйте отдельные ключи для разных участников и задач автоматизации. Если участник покинул команду, устройство потеряно или ключ мог попасть к посторонним, сначала добавьте и проверьте новый открытый ключ, затем удалите старый. Также проверьте учётные данные в CI и связанные журналы доступа.

Условие успеха: старый ключ отозван, а текущие подключения runner и администратора работают.

Всё ещё не удаётся подключиться? Уточните, на каком уровне возникает проблема

Создайте заявку в панели управления и укажите номер хоста, ОС и версию клиента, используемый протокол, точный текст ошибки, время и часовой пояс, а также подключаетесь ли вы через SSH-туннель. Перед отправкой скройте на снимках экрана пароли, токены и другие конфиденциальные данные. Не отправляйте закрытые ключи или сертификаты целиком.

Проверьте подключение, затем поручите сборки runner

Для разовой проверки можно арендовать Mac на день — от $21.1 в день. Сначала убедитесь, что работают SSH и общий экран, затем зафиксируйте версии Xcode и зависимостей, чтобы ежедневные сборки не зависели от постоянно включённого локального компьютера.