Руководство по удалённому подключению

Безопасно подключитесь к облачному Mac с локального устройства

Сначала определите, нужны ли вам командная строка, графический рабочий стол или автоматическое выполнение, затем проверьте учётные данные, инструменты и права доступа. VMRunner предоставляет выделенный физический узел Apple Silicon, а не виртуальную машину; используйте данные подключения из переданного заказа в консоли.

Способы подключения
3 типа
Формат поставки
Выделенный физический узел
Режим работы
365 дней в году
ТАБЛИЦА ПОДКЛЮЧЕНИЯ

Панель подключения

После передачи узла
01
Управление по SSH Репозитории, сборка, журналы
Рекомендуется
02
Графический рабочий стол Xcode, ресурсы, отладка
По необходимости
03
CI Runner Тесты, подпись, передача артефактов
Постоянно
Разделение учётных данных Пройдено
Отпечаток хоста Проверить локально
Первая сборка Начните с небольшой задачи

Не передавайте одни и те же учётные данные одновременно личному сеансу и автоматизированной задаче. Сначала создайте отдельную учётную запись с возможностью отзыва прав, затем подключите Runner.

Выберите способ подключения

Сначала распределите задачи по типам, не включая графический рабочий стол по умолчанию

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

Управление из командной строки

Подходит для операций Git, установки зависимостей, проверки журналов, запуска сценариев и сборок. Использует меньше трафика, а после разрыва соединение проще восстановить.

  • Типичный вход: SSH
  • Подходящие задачи: сборка и обслуживание
  • Рекомендуемые права: вход по ключу

Работа с графическим рабочим столом

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

  • Типичный вход: удалённый рабочий стол
  • Подходящие задачи: интерактивные инструменты
  • Рекомендуемые права: отдельная учётная запись сеанса

Автоматизация CI

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

  • Типичный вход: самостоятельно размещённый Runner
  • Подходящие задачи: непрерывный конвейер
  • Рекомендуемые права: минимально необходимые
Проверка перед подключением

Сначала зафиксируйте данные поставки и локальные исходные показатели

При поиске причин проблем с удалённым подключением чаще всего время теряется не из-за сложной неисправности, а из-за неясных адреса узла, назначения учётной записи или состояния локальной сети. Перед первым подключением внесите следующие данные, чтобы затем определить уровень, на котором возникло изменение.

Сохраните следующие данные поставки

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

  1. 01

    Подтвердите передачу заказа

    Проверьте статус заказа и данные подключения в консоли. До завершения передачи не подключайтесь по старому адресу или сведениям, полученным от других.

  2. 02

    Сохраните адрес узла и отдельные учётные данные

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

  3. 03

    Измерьте исходные показатели локальной сети

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

  4. 04

    Спланируйте права учётных записей

    Учётная запись разработчика получает только права, необходимые для рабочего каталога; учётная запись Runner — доступ только к каталогу сборки, кэшу и нужным ресурсам подписи.

Подключение по SSH

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

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

ШАГ 01

Проверьте отпечаток хоста

ssh-keyscan -t ed25519 NODE_ADDRESS
ssh USER@NODE_ADDRESS

Сверьте впервые полученный отпечаток с данными поставки в консоли. Если после смены адреса или переустановки системы отпечаток изменился, сначала выясните причину, а не удаляйте локальную запись и не продолжайте подключение.

ШАГ 02

Создайте и установите отдельный ключ

ssh-keygen -t ed25519 -a 64
ssh-copy-id USER@NODE_ADDRESS

Создайте отдельный ключ для узла VMRunner. Защитите приватный ключ локальным паролем, не добавляйте его в репозиторий и не смешивайте с ключом развёртывания Runner.

ШАГ 03

Настройте псевдоним и поддержание соединения

Host vmrunner-build
  HostName NODE_ADDRESS
  User ACCOUNT_NAME
  IdentityFile ~/.ssh/vmrunner_ed25519
  ServerAliveInterval 30
  ServerAliveCountMax 3

Псевдоним уменьшает риск ошибок при переписывании адреса. Параметры поддержания соединения только обнаруживают разрыв и не восстанавливают уже прерванные процессы; длительные задачи передавайте менеджеру задач или CI Runner.

Граница минимальных прав

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

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

Настройте качество изображения ровно под требования задачи

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

  • На переданном узле убедитесь, что служба удалённого графического доступа включена, и ограничьте список учётных записей, которым разрешён вход.
  • Сначала протестируйте один монитор и низкое разрешение; после проверки стабильности ввода и изображения повысьте настройки.
  • Проверьте соответствие клавиш Command, Option и Control локальной раскладке, чтобы избежать случайного нажатия сочетаний.
  • Передавайте через буфер обмена только необходимый текст; не копируйте приватные ключи, полные токены или пароли сертификатов.
  • Перед уходом заблокируйте сеанс; после завершения задачи отключитесь и не оставляйте неиспользуемый рабочий стол открытым.

Порядок настройки графического сеанса

Начните со стабильности
01 Разрешение

Сначала выберите минимальное разрешение, на котором полностью видны окна инструментов, и оцените задержку ввода и обновление изображения.

02 Цвет и анимация

При нестабильной сети уменьшите визуальные эффекты, оставив пропускную способность для отклика на действия и синхронизации файлов.

03 Раскладка клавиатуры

Проверьте часто используемые сочетания в безопасном текстовом окне, а затем переходите к подписи, удалению или публикации.

04 Блокировка сеанса

После прерывания сначала проверьте состояние старого сеанса, чтобы не запускать инструменты повторно и не занимать один рабочий каталог одновременно.

Путь миграции

С локального Mac на облачный Mac: три проверки

Не переносите сразу весь код, сертификаты, кэш и конвейеры. На каждом этапе сохраняйте проверяемый результат и переходите дальше только после успешной проверки предыдущего.

01 · DATA

Синхронизация данных

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

  • Проверьте ветку по умолчанию и хеш коммита
  • Зафиксируйте версии файлов блокировки зависимостей
  • Сверьте контрольные суммы важных ресурсов
Результат: воспроизводимая база кода в облаке
02 · TOOLCHAIN

Установка инструментов

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

  • Зафиксируйте версии Xcode и SDK
  • Проверьте путь к выбранным инструментам командной строки
  • Разделите кэш зависимостей и каталог сборки
Результат: список среды, прошедшей тестовую сборку
03 · RUNNER

Подключение CI

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

  • Создайте отдельный рабочий каталог для Runner
  • Передавайте только переменные, необходимые текущей задаче
  • Проверьте журналы, код завершения и хеш артефактов
Результат: первая проверяемая облачная цепочка
Проверка среды

Оформите среду разработки как список, а не восстанавливайте её по памяти

Один и тот же код может вести себя по-разному на двух Mac из-за различий в версиях инструментов, путях, кэше или правах. Перед первой рабочей сборкой зафиксируйте каждый пункт ниже.

Пункт проверки Способ проверки Критерий прохождения
Xcode и SDK xcodebuild -version Версии совпадают с базовой конфигурацией проекта
Инструменты командной строки xcode-select -p Путь указывает на нужный Xcode
Сертификаты и профили подготовки Выполните проверку подписи с удалёнными секретами Имя цели и область действия совпадают
Менеджер пакетов Зафиксируйте версию и состояние файла блокировки Зависимости устанавливаются воспроизводимо
Каталог кэша Проверьте владельца, объём и правила очистки Личные задачи и CI изолированы
Каталог сборки Выполните тестовую сборку после очистки Путь к артефактам и права определены
Подключение CI

Дайте автоматизированным задачам собственную личность и рабочий каталог

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

Устранение неполадок CI
  1. 01

    Создайте отдельную учётную запись

    Учётная запись получает доступ только к рабочей области репозитория, кэшу зависимостей, каталогу сборки и необходимым ресурсам подписи; повседневные права администратора не выдавайте.

  2. 02

    Зарегистрируйте Runner

    Используйте процедуру регистрации платформы конвейеров для привязки текущего узла и задайте Runner метки, описывающие чип, систему и тип задачи.

  3. 03

    Передайте контролируемые переменные

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

  4. 04

    Выполните тестовую сборку

    Начните с цели с небольшим числом зависимостей и коротким временем выполнения; проверьте код завершения, результаты тестов, попадания в кэш и очистку рабочего каталога.

  5. 05

    Передайте и проверьте артефакты

    Зафиксируйте имя артефакта, коммит-источник, контрольную сумму и место хранения. После подтверждения успешной передачи расширяйте процесс до полного конвейера.

Безопасное завершение

Успешное подключение ещё не означает завершение миграции

Перед вводом в эксплуатацию ещё раз проверьте учётные данные, область общего доступа, резервные копии и сведения о восстановлении. Цель — возможность отдельно отозвать любую учётную запись, сеанс или автоматизированную задачу.

A

Смените исходные учётные данные

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

B

Ограничьте общие учётные записи

Каждый пользователь и каждый Runner должны использовать отдельную личность. При изменении прав отзывайте только соответствующую учётную запись, не затрагивая другие рабочие нагрузки.

C

Создайте резервные копии важных данных

Основной код храните в удалённом репозитории, а материалы подписи, ресурсы проекта и важные артефакты резервируйте по правилам команды и регулярно проверяйте восстановление.

D

Отключайте неиспользуемые сеансы

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

E

Сохраните сведения для восстановления

Запишите идентификатор заказа, город узла, назначение учётной записи, версии инструментов и последнюю успешную сборку, чтобы служба поддержки быстро локализовала проблему.

При обращении в поддержку подготовьте воспроизводимые данные

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

Готовы начать

После выбора узла проверьте всю цепочку подключения небольшой сборкой

Сначала проверьте учётные данные, зафиксируйте версии инструментов и передайте тестовые артефакты, затем переносите рабочий проект на выделенный физический узел Apple Silicon.