Сначала проверьте данные для входа

Три способа подключиться к облачному Mac

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

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

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

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

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

  1. 01

    Скопируйте параметры подключения

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

  2. 02

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

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

  3. 03

    Добавьте открытый ключ

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

  4. 04

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

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

Выполните в локальном терминале; сначала замените три параметра подключения

HOST='адрес хоста из панели управления'
SSH_PORT='порт SSH из панели управления'
REMOTE_USER='имя пользователя из панели управления'
ssh -p "$SSH_PORT" "$REMOTE_USER@$HOST"

ssh-keygen -t ed25519 -f "$HOME/.ssh/xcodenet_ed25519"
cat "$HOME/.ssh/xcodenet_ed25519.pub" | ssh -p "$SSH_PORT" "$REMOTE_USER@$HOST" 'umask 077; mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys'

ssh -i "$HOME/.ssh/xcodenet_ed25519" -p "$SSH_PORT" "$REMOTE_USER@$HOST"

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

Проверка после подключения

Убедитесь, что используется arm64, и запускайте сборку

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

xcodenet — tokyo-m4 — ssh
$ ssh -p "$SSH_PORT" "$REMOTE_USER@$HOST"
Welcome to macOS
$ uname -m
arm64
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
$ cd ~/workspace/App
$ xcodebuild -scheme App archive
BUILD SUCCEEDED
$ fastlane beta
Successfully uploaded to TestFlight

Проверьте архитектуру

Команда uname -m показывает архитектуру текущей системы. Нативные инструменты должны соответствовать среде arm64. Если возникают ошибки зависимостей, сначала проверьте архитектуру бинарных файлов: успешное подключение ещё не означает, что среда настроена.

Сначала система

Проверьте путь к инструментам

Команда xcode-select -p показывает текущую папку с инструментами разработки. После смены версии Xcode проверьте путь ещё раз, а затем убедитесь, что SDK, scheme и настройки подписи проекта соответствуют требованиям.

Затем инструменты

Проверьте настройки публикации

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

В конце публикация
Графический интерфейс

Общий экран для работы, SSH-туннель для защиты соединения

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

Встроенный общий экран macOS

В локальном Finder выберите «Переход» → «Подключиться к серверу» и введите адрес из панели управления. Используйте данные графического входа для этого экземпляра — пароль от панели управления не является паролем сервера.

При подключении через SSH-туннель, приведённый ниже, укажите адрес vnc://127.0.0.1:5901. Не закрывайте терминал с туннелем: его закрытие прервёт перенаправление порта. Не открывайте доступ к рабочему столу из интернета в обход туннеля.

Для локального Mac

Совместимый VNC-клиент

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

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

Сначала плавность, потом качество

Пример SSH-туннеля: включите службу удалённого рабочего стола; порт прослушивания зависит от настроек экземпляра

VNC_PORT='5900'
ssh -N -L "127.0.0.1:5901:127.0.0.1:$VNC_PORT" \
  -i "$HOME/.ssh/xcodenet_ed25519" \
  -p "$SSH_PORT" "$REMOTE_USER@$HOST"

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

Синхронизация файлов

Для разовой передачи — scp, для регулярной синхронизации — rsync

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

scp: передача отдельных файлов

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

Разовая передача

rsync: синхронизация проекта

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

Инкрементальная синхронизация

Сначала проверьте каталог на сервере; команды ниже ничего не удаляют

scp -P "$SSH_PORT" -i "$HOME/.ssh/xcodenet_ed25519" \
  ./App.zip "$REMOTE_USER@$HOST:~/uploads/"

scp -P "$SSH_PORT" -i "$HOME/.ssh/xcodenet_ed25519" \
  "$REMOTE_USER@$HOST:~/exports/App.zip" ./downloads/

rsync -av --dry-run \
  -e "ssh -p $SSH_PORT -i $HOME/.ssh/xcodenet_ed25519" \
  ./project/ "$REMOTE_USER@$HOST:~/workspace/project/"

rsync -av \
  -e "ssh -p $SSH_PORT -i $HOME/.ssh/xcodenet_ed25519" \
  ./project/ "$REMOTE_USER@$HOST:~/workspace/project/"

Если для большого проекта, файлов моделей или медиаматериалов нужно больше места, можно подключить внешний SSD на +1 ТБ за $2.2/день или +2 ТБ за $4.4/день. Дополнительный накопитель не меняет характеристики основного диска доступных моделей. После подключения проверьте фактическую точку монтирования и свободное место командой df -h, а затем настройте каталоги загрузки, кэша и экспорта.

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

Шесть локаций на выбор

Выберите ближайший город и проверьте работу

В Сингапуре, Токио, Сеуле, Гонконге, на востоке и западе США доступны по две конфигурации. Эти направления помогут выбрать локацию, но не гарантируют определённую задержку. Актуальную доступность проверяйте в панели управления.

Сингапур

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

2 конфигурации

Токио, Япония

Один из вариантов для пользователей из Восточной Азии. При графической отладке проверьте прокрутку текста и перемещение окон. Если вы в основном используете SSH, сравните скорость загрузки зависимостей и передачи результатов сборки.

2 конфигурации

Сеул, Южная Корея

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

2 конфигурации

Гонконг

Подходит для сравнения пользователям из южного Китая и Юго-Восточной Азии. Сначала используйте проводное или стабильное локальное подключение, чтобы исключить помехи Wi-Fi, а затем оцените работу общего экрана и стабильность длительной передачи файлов.

2 конфигурации

Восток США

Один из вариантов для пользователей с востока Северной Америки и из Западной Европы. При настройке CI сравнивайте маршрут до репозитория команды, сервиса зависимостей и хранилища результатов, а не только расстояние от пользователя до сервера.

2 конфигурации

Запад США

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

2 конфигурации

Как измерить соединение, а не только задержку

Для назначенного хоста выполните ping -c 10 "$HOST" и посмотрите на время ответа и потери пакетов. Некоторые сети не отвечают на ICMP-запросы — это не означает, что SSH недоступен. Затем поработайте с рабочим столом в одинаковых настройках клиента и передайте один и тот же тестовый файл. Запишите длительность, используемую сеть, разрешение и результат: так поддержке будет проще воспроизвести проблему.

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

Настройки безопасности

Меняйте по одному параметру и проверяйте повторный вход

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

  1. 01

    Смените порт

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

  2. 02

    Ограничьте IP-адреса

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

  3. 03

    Настройте брандмауэр

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

  4. 04

    Удалите данные перед окончанием аренды

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

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

Устранение проблем

Не удаётся подключиться? Проверьте пять пунктов

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

  1. 01

    Заказ и экземпляр

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

  2. 02

    Адрес и порт

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

  3. 03

    Аутентификация и ключи

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

  4. 04

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

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

  5. 05

    Подготовьте данные для заявки

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

Выберите срок аренды и подключайтесь удобным способом

Облачный Mac — от $21.4/день. Выберите модель, город и срок аренды. После подтверждения оплаты и назначения сервера данные для входа появятся в панели управления. При первом подключении сначала проверьте SSH, а затем настройте рабочий стол и среду разработки.