Руководство по удалённому доступу

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

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

Командная строка
SSH и аутентификация по ключу
Графический интерфейс
VNC и контролируемый буфер обмена
Цель проверки
Подключение, инструменты, задача, выход
Регистрация перед подключением ГОТОВО / ПРОВЕРИТЬ
Данные узла Имя хоста, порт, имя пользователя Получено
Данные для входа Закрытый ключ или временные данные Хранить локально
Проверка доверия Сверить отпечаток хоста Обязательно
Первая проверка Терминал, рабочий стол, сборка Записать результат

Не копируйте отпечаток хоста из чатов или непроверенных источников. Используйте данные текущего заказа в консоли.

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

Сначала выберите SSH или VNC

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

Командная строка и автоматизация

SSH: выбор для сборок, скриптов и runner

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

  • Файл закрытого ключа доступен только текущему пользователю
  • Локальная сеть разрешает доступ к порту из заказа
  • До первого подключения проверьте отпечаток через независимый канал
  • Для автоматизации используйте отдельный ключ с ограниченным назначением
Работа с графическим интерфейсом

VNC: проверка приложений и среды отображения

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

  • Общее устройство не сохраняет пароль подключения
  • Выбирайте разрешение под рабочую нагрузку
  • Отключайте ненужную синхронизацию файлов и буфера обмена
  • Проверьте блокировку при бездействии и восстановление после разрыва
Процесс первого подключения

От данных узла до записи результатов — четыре шага

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

  1. 01 Получите данные узла

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

    Проверка: все поля из одного заказа, узел и срок совпадают
  2. 02 Независимо сверьте отпечаток

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

    Проверка: алгоритм и текст отпечатка полностью совпадают
  3. 03 Установите сеанс и обновите данные доступа

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

    Проверка: новый сеанс работает, старые временные материалы не используются
  4. 04 Запишите результаты проверки

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

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

Воспроизводимый сеанс для проверки SSH, Xcode и Fastlane

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

armcli-session — verification
$ ssh -p 22022 developer@host.example
The authenticity of host cannot be established.
ED25519 key fingerprint is SHA256:<compare-with-console>
Are you sure you want to continue connecting (yes/no)? yes
Last login: current session

developer@cloud-mac % xcodebuild -version
Xcode 16.x
Build version 16X000

developer@cloud-mac % fastlane test
[✓] Preparing build environment
[✓] Resolving project dependencies
[✓] Test task completed

developer@cloud-mac % exit
Connection to host.example closed.
Контрольная точка: отпечаток проверен Xcode запускается Задача завершена успешно Сеанс закрыт
Проверка подключения к рабочему столу

Доступность VNC ещё не означает готовность рабочего стола к работе

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

01

Разрешение и масштабирование

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

02

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

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

03

Политика буфера обмена

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

04

Блокировка при бездействии

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

05

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

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

06

Очистка общего устройства

После выхода удалите сохранённые записи о хосте, кэшированные данные доступа и временные загрузки. Отдельно проверьте браузер, VNC-клиент и менеджер паролей.

Практика SSH-туннелирования

Пересылайте только локальный порт, нужный текущей задаче

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

  • Минимальное открытие:Удалённый сервис по возможности должен слушать loopback-адрес; пересылайте только один порт текущей задачи.
  • Явное поддержание сеанса:Для длительных задач задайте разумный интервал поддержания соединения и число неудачных попыток, чтобы потерянный сеанс не зависал бесконечно.
  • Отдельный ключ:Для автоматизированного туннеля используйте отдельный ключ с независимо отзываемыми правами и назначением; не смешивайте его с ключом для повседневной работы.
  • Отзыв после задачи:После завершения пересылки остановите процесс, отзовите больше не нужный открытый ключ и убедитесь, что локальный порт закрыт.
Пример локальной переадресации порта ТОЛЬКО ЛОКАЛЬНО
ssh \
  -L 127.0.0.1:9000:127.0.0.1:9000 \
  -o ServerAliveInterval=30 \
  -o ServerAliveCountMax=3 \
  -p 22022 \
  developer@host.example
Локальное прослушивание
127.0.0.1:9000
Удалённая цель
127.0.0.1:9000
Способ выхода
Корректно завершите SSH-сеанс и убедитесь, что порт закрыт
Подключение CI/CD

Сначала выполните минимальный тестовый конвейер runner

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

01

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

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

Результат: runner в сети
02

Добавьте понятные теги

Описывайте тегами реальные возможности, например macOS, arm64 и назначение проекта. Избегайте слишком общих тегов по умолчанию, чтобы несвязанные задачи не назначались этому узлу.

Результат: точное сопоставление задачи
03

Проверьте рабочий каталог

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

Результат: контролируемые права каталога
04

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

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

Результат: задача воспроизводима
Запись первой проверки runner
Пункт проверки Способ выполнения Условие успеха Сначала проверить при ошибке
Архитектура и система uname -m Вывод соответствует тегу задачи Теги runner и узел выполнения
Инструменты Xcode xcodebuild -version Версия читается, код выхода команды равен 0 Путь к команде и среда задачи
Рабочий каталог Создать, прочитать и удалить тестовый файл Запись и чтение разрешены только в целевом каталоге Владелец и права каталога
Работа кэша Дважды выполнить одну и ту же проверку Попадание в кэш объяснимо и не смешивает проекты Ключ кэша и политика очистки
Устранение проблем подключения

От DNS до локальной сети — сужайте область по порядку

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

01
DNS и имя хоста

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

Результат разрешения
02
Порт подключения

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

Доступность порта
03
Ключ и права файла

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

Этап аутентификации
04
Отпечаток хоста

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

Проверка доверия
05
Занятые сеансы

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

Состояние сеанса
06
Локальная сеть

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

Охват сети
Подготовьте эти данные перед отправкой заявки

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

Список действий после работы

Перед завершением задачи закройте доступ, данные и срок аренды

Отключить удалённое окно недостаточно. Выйдите из сеансов, отзовите материалы доступа, удалите чувствительные файлы, проверьте резервные копии и сверьте срок заказа.

  1. 01 Выйдите из всех сеансов

    Завершите SSH, VNC, локальную переадресацию портов и интерактивные сеансы runner; убедитесь, что не осталось тестовых процессов или фоновых портов прослушивания.

  2. 02 Отзовите больше не используемые ключи

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

  3. 03 Очистите кэш и чувствительные файлы

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

  4. 04 Проверьте чтение резервной копии

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

  5. 05 Сверьте срок аренды и состояние заказа

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

Начните работу

Арендуйте выделенный физический Mac и подключитесь по этому руководству

Три конфигурации для сборок в командной строке, графического интерфейса, CI/CD runner и параллельных задач. Фактический статус доступности всегда смотрите в консоли.

SSH и VNC Выделенный физический узел Стабильная работа 365 дней в году