Лист подключения устройства

Выберите SSH или браузерный графический интерфейс под задачу

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

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

SSH Скрипты, сборка и фоновые задачи
Браузерный интерфейс Работа с Xcode и графическим рабочим столом
5 узлов Данные подключения предоставляются для каждого заказа
ЛИСТ ПОДКЛЮЧЕНИЯ УСТРОЙСТВА RUN-SSH-GUI
Данные подключения предоставлены 1 заказ = 1 выделенный физический узел
Канал командной строки
Аутентификация по открытому ключу SSH
Графический канал
Переход из карточки устройства в панели управления
Первичная проверка
Адрес хоста, имя пользователя, отпечаток
Рекомендуемые задачи
xcodebuild, fastlane, CI Runner
Проверка Аутентификация Подключение Выполнение Выход
Обзор способов подключения

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

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

По умолчанию

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

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

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

Браузерный графический интерфейс: для задач, где нужно видеть рабочий стол

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

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

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

Подготовка SSH

Перед первым подключением полностью проверьте четыре идентификационных параметра

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

  1. 01

    Создайте личный ключ SSH

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

    ssh-keygen -t ed25519 -C "deploymini-access"
  2. 02

    Передайте только содержимое открытого ключа

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

    cat ~/.ssh/id_ed25519.pub
  3. 03

    Проверьте адрес хоста и имя пользователя

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

    ssh -p <port> <user>@<host>
  4. 04

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

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

    SHA256:<fingerprint-from-device-details>

Правила ротации ключей

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

Правила локальной конфигурации

В локальном SSH config можно задать псевдоним устройства, однако хост, порт и имя пользователя по-прежнему должны соответствовать текущим данным из панели управления.

Правила обработки необычных ситуаций

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

Удалённый доступ через браузер

Переходите из карточки устройства и не сохраняйте ссылку сеанса

  1. Войдите в панель управления Откройте карточку устройства, соответствующего текущему заказу, и проверьте узел, модель и состояние подключения.
  2. Запустите браузерный сеанс Используйте функцию удалённого доступа в карточке устройства. Не добавляйте временный адрес сеанса в закладки и не пересылайте его другим.
  3. Настройте параметры отображения На панели инструментов доступны масштабирование разрешения, полноэкранный режим и буфер обмена. Высокое разрешение увеличивает объём передаваемого изображения; при нестабильной сети сначала уменьшите размер экрана.
  4. Завершите работу и заблокируйте устройство Сначала сохраните работу, затем закройте приложения, заблокируйте рабочий стол и завершите браузерный сеанс.

Управление буфером обмена

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

Разрешение и полноэкранный режим

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

Демонстрация подключения и сборки

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

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

build-session — ssh
СЕАНС АКТИВЕН
$ ssh -p <port> <user>@<host>
The authenticity of host cannot be established.
ED25519 key fingerprint is SHA256:<fingerprint>
Are you sure you want to continue connecting? yes

Connected to dedicated physical Mac mini
$ sw_vers
ProductName:            macOS
ProductVersion:         <installed-version>

$ cd ~/work/ExampleApp
$ xcodebuild \
  -workspace ExampleApp.xcworkspace \
  -scheme ExampleApp \
  -configuration Release \
  build

** BUILD SUCCEEDED **

$ bundle exec fastlane ios build
[fastlane] Resolving project configuration
[fastlane] Running archive workflow
[fastlane] Build artifacts ready for verification

$ shasum -a 256 ./output/ExampleApp.ipa
<checksum>  ./output/ExampleApp.ipa
Контрольная точка A

Зафиксируйте окружение перед сборкой

Сохраните версии macOS, Xcode, Ruby, инструментов управления зависимостями и коммита проекта. При расхождениях сначала сравните записи окружения, а не переустанавливайте все зависимости.

Контрольная точка B

Проверьте артефакты после сборки

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

Диагностика сети

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

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

  1. 01

    DNS и адрес

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

    nslookup <host>
  2. 02

    Локальная внешняя сеть

    Убедитесь, что текущая сеть разрешает внешние подключения. Корпоративная сеть, гостевой Wi-Fi, прокси или VPN могут изменить маршрут; для сравнения подключитесь к заведомо рабочей сети.

    traceroute <host>
  3. 03

    Брандмауэр и целевой порт

    Проверьте порт из данных заказа и убедитесь, что локальное защитное ПО и сетевые политики организации не блокируют соединение. Не считайте, что все устройства используют стандартный порт SSH.

    nc -vz <host> <port>
  4. 04

    Имя пользователя и учётные данные

    Отличайте недоступность порта от ошибки аутентификации. При ошибке аутентификации проверьте имя пользователя, путь к открытому ключу, права ключа и ssh-agent; не перебирайте пароли один за другим.

    ssh -vv -i ~/.ssh/id_ed25519 <user>@<host>
  5. 05

    Состояние удалённой службы

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

    Connection reset | timeout | permission denied
  6. 06

    Состояние узла и заказа

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

    Проверить состояние в панели управления

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

Безопасность сеанса

Сделайте каждый доступ отслеживаемым до конкретного оператора

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

Базовые правила контроля доступа

Начинайте с личного ключа и завершайте работу его активным отзывом.

  • Один человек — один ключ:Не позволяйте нескольким участникам длительно использовать один закрытый ключ.
  • Уходя, блокируйте экран:Когда браузерный сеанс не используется, блокируйте рабочий стол и после завершения выходите из сеанса.
  • Ограничивайте общие учётные записи:Предоставляйте доступ только участникам, которым он нужен для текущей задачи.
  • Отзывайте временные учётные данные:После завершения задачи удаляйте временные открытые ключи, токены и переменные окружения.
  • Сначала обезличьте журналы:Перед отправкой удалите ключи, токены, персональные данные и полные платёжные реквизиты.
Не отправляйте

Закрытые ключи и действующие токены доступа

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

Предоставьте

Текст ошибки и обезличенный отладочный вывод

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

Рекомендации по производительности

Для интерактивной работы важна стабильность сети, для длительных задач — выполнение на устройстве

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

Для работы с рабочим столом выбирайте стабильный канал

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

Передавайте большие файлы частями и проверяйте их

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

Передавайте длительную сборку фоновой задаче

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

Кратковременная работа Браузерный графический интерфейс
Повторяемые операции Скрипт SSH
Непрерывное выполнение Фоновая задача или CI Runner
Передача больших файлов Обработка частями и проверка
ЛИСТ ПЕРЕДАЧИ В ПОДДЕРЖКУ 6 ОБЯЗАТЕЛЬНЫХ ПОЛЕЙ
Передача в поддержку

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

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

Номер заказа Помогает найти устройство и запись о предоставлении
Узел Укажите название узла из панели управления
Время возникновения Укажите часовой пояс и сообщите, продолжается ли проблема
Клиент ОС, терминал или браузер и их версии
Шаги воспроизведения Порядок действий от нормального состояния до ошибки
Обезличенный журнал Сохраните исходный текст ошибки и удалите чувствительные данные

Проблемы работы — через обращение по заказу

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

Общие вопросы можно отправить по электронной почте

Если вы ещё не разместили заказ или хотите уточнить способ подключения, укажите предполагаемую задачу, целевой узел, клиентское окружение и срок аренды, отправив письмо на support@deploymini.com.

Подготовьтесь подключиться к первому выделенному физическому Mac mini

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