Connection & Migration Guide

Move your local development workflow to a Cloud Mac with confidence

PingMini provides dedicated physical Cloud Mac machines. Choose graphical desktop, SSH, or automation based on your workflow, then migrate your code, toolchain, and build configuration. Every step includes inputs, actions, and acceptance checks.

3 access paths
Graphical desktop, SSH, automation
4 migration targets
Code, toolchain, signing assets, CI configuration
1 guiding principle
Verify first, then migrate incrementally
Connection runbook Local Mac → Cloud Mac
Pending
Target node SG / JP / KR / HK / US-E
Delivery target Dedicated physical machine
Desktop Confirm resolution and keyboard layout Check: interface, input, and clipboard policies match expectations
Connect
SSH Verify host fingerprint and test the key Check: non-interactive commands return the correct host information
Verify
Migrate Sync the repository and dependency lockfiles Check: the build is reproducible in a clean environment
Reproduce
CI Register the runner and run a probe task Check: logs, artifacts, and exit codes are traceable
Deliver
Connection details are determined by the order confirmation PLAN → CONNECT → VERIFY
Choose an access path

Start with the task, then choose how to connect

You can use all three methods together, but we recommend against configuring every entry point at once for a first setup. Complete the minimum connection check first, then add automation and team permissions.

Visual access

Graphical desktop

Best for checking the system initially, running Xcode, handling signing assets, monitoring build interfaces, and performing tasks that require human confirmation.

Input
Host address, account, and temporary credentials
Check
Clear display with the expected keyboard, mouse, and clipboard policies
Command line

SSH

Best for repository sync, dependency installation, log collection, script execution, and low-bandwidth environments. Prefer keys over long-lived shared passwords.

Input
Host address, username, and public key
Check
Fingerprint confirmed; non-interactive commands return reliably
Continuous execution

Automation

Best for CI/CD, self-hosted runners, scheduled builds, and batch testing. Use a dedicated runner account, working directory, and revocable credentials.

Input
Runner configuration, least-privilege access, and working directory
Check
Task exit codes, logs, and artifact locations are traceable
First graphical connection

Get the session into a workable state first

The goal of the first connection is not to move the entire project immediately, but to confirm the host, display, input, and data-exchange boundaries. Record the result after each check.

Session checklist GRAPHICAL SESSION
STEP 01–04
  1. 01

    Verify host details

    Check the node, model, host address, and account name in the order one by one. Do not connect from historical records or reuse an address from an old project for a new order.

    Host confirmed
  2. 02

    Establish the first session

    Connect from a trusted network. After signing in for the first time, check system information, time zone, disk capacity, and network status before importing any sensitive material.

    Session stable
  3. 03

    Adjust display settings

    Choose a resolution suited to your local display and connection. If text is blurry, check scaling first; if interaction is delayed, lower image quality before assuming a host performance issue.

    Display clear
  4. 04

    Verify input boundaries

    Test Chinese and English input, common shortcuts, and keyboard layout. Confirm whether the clipboard allows two-way synchronization; sensitive content should not remain in a shared clipboard.

    Input controlled
Before connecting

Prepare a local verification record

Record the network used to initiate the connection, client version, target node, and start time. If lag or disconnections occur later, this information helps distinguish local network issues from remote-session problems.

View connection troubleshooting
After connecting

Verify first; copy later

Run a small test project to confirm that compilation, logs, and the output directory work correctly. Only then migrate large repositories, media assets, or signing-related files.

Check machine configuration
Initial SSH setup

Make the command-line entry point verifiable and revocable

Manage keys, host fingerprints, and account permissions separately. Do not put long-lived private keys, project keys, and shared team credentials in the same directory just to save a step.

Run locally

Generate a dedicated key and record its purpose

Generate a dedicated key for the current device and collaborator. The filename should identify the device and purpose; the key comment should contain only necessary identifiers, never project secrets.

ssh-keygen -t ed25519 -a 64 -f ~/.ssh/pingmini_dev
chmod 600 ~/.ssh/pingmini_dev
ssh-add ~/.ssh/pingmini_dev

Keep the private key on a controlled local device and submit only the public key. When a team member leaves the project, delete the corresponding public key instead of replacing the entire shared credential set.

Verify remotely

Confirm the fingerprint, then test a non-interactive command

The host fingerprint shown on the first connection must match the information from a trusted source. After confirming it, use read-only commands to verify the host identity and command-execution path.

ssh -i ~/.ssh/pingmini_dev user@host
ssh -i ~/.ssh/pingmini_dev user@host \
  'sw_vers && uname -m && whoami'

The expected result should include the macOS version, arm64 architecture, and the correct account name. If the result differs, stop the migration and verify the order and connection details first.

A

Restrict account permissions

Give automation accounts only the permissions required for their tasks. Separate interactive and CI accounts so scripts cannot inherit unnecessary access to personal directories.

B

Pin the host configuration

Use a dedicated alias and specified key file in the local SSH configuration, and disable irrelevant identity attempts to reduce the chance of using the wrong private key.

C

Test exit codes

In addition to reviewing command output, check the script exit code. Automation systems use exit codes to determine success or failure; the final log line alone is not enough.

Migration map

Split the migration into three independently verifiable paths

Moving from a local Mac to a Cloud Mac is not a whole-disk copy. Migrate data first, reproduce the toolchain next, and connect CI last. Keep input lists and acceptance evidence for every path.

01 Data migration

Move only the data the project needs

Input
Code repositories, required assets, configuration templates, database exports, and dependency lockfiles.
Action
Prefer cloning the repository again; validate large files in batches; place sensitive configuration separately through a controlled channel.
Check
The repository is clean, critical files pass checksum verification, and no local temporary caches remain in the project directory.
02 Toolchain reproduction

Rebuild the environment from a version checklist

Input
Xcode version, command-line tools, package-manager inventory, SDK requirements, and dependency lockfiles.
Action
Install the base tools first, then restore dependencies. Do not copy global caches or derived-data directories from the old machine.
Check
The same commit builds in a clean directory, with test version, compiler version, and artifact information recorded.
03 CI integration

Add the node to task orchestration

Input
Runner registration details, working directory, concurrency policy, cache rules, and artifact delivery location.
Action
Register the node with a dedicated runner account, run a short probe task first, then gradually add testing, archiving, and release-preparation workflows.
Check
Tasks can start, be canceled, and be cleaned up; logs are searchable; failed tasks do not leave background processes consuming resources.
Development environment migration

Reproduce the environment from a checklist—not the old machine’s clutter

Migration is complete when the same commit builds reliably in the new environment, not when the file count exactly matches the local device.

Migration checklist

Restore in dependency order, layer by layer

Code repository

Clone again from a trusted remote and check branches, submodules, large-file references, and uncommitted changes.

Dependency lockfiles

Sync the lockfiles and version declarations used by the project to avoid unintentionally upgrading dependencies on the new machine.

Xcode and command-line tools

Record the actual versions, selected developer directory, and SDK requirements, then run a complete build.

Certificates and provisioning profiles

Import only the materials required by the project. Define the owner, purpose, and revocation path, and limit automation-account access.

Build and test results

Keep the commit ID, tool versions, task duration, exit code, and artifact location as the migration acceptance record.

Should sync

Inputs that determine build results

Repositories, lockfiles, configuration templates, scripts, required assets, signing materials, and explicit version requirements. Every item should have a known source and purpose.

Goal: explainable, reproducible, revocable
Do not copy

Caches that can be regenerated

Derived build directories, package-manager caches, temporary simulator data, historical logs, and unrelated downloaded files. Copying these can magnify compatibility issues.

Principle: rebuild first, add only what is missing
Session security

Treat access as a task with a defined start and end

Remote sessions, SSH keys, and CI credentials should each have a clear owner, purpose, and revocation time. Ending collaboration does not mean merely closing a window; revoke access and remove residual data as well.

ACCESS

Use dedicated strong credentials

Give each collaborator an individual entry point. Avoid sharing one account and key among multiple people so access can be revoked precisely when team membership changes.

ROTATE

Rotate keys in response to events

Rotate immediately when a device is replaced, a member leaves, a project changes hands, or credentials may have been exposed. Do not wait for a fixed cycle to end.

LIMIT

Limit shared accounts

Use separate account boundaries for interactive work, automation, and operational tasks. Prevent CI tasks from gaining unnecessary access to personal directories.

CLOSE

Complete handoff and cleanup

Before the rental term ends, export required artifacts, revoke project credentials, delete sensitive files, and confirm that collaborator entry points have been reclaimed.

Collaboration begins Register people, purposes, and permissions

Open only the entry points required for the task and record the associated public key or runner account.

Collaboration in progress Check for unusual logins and leftover tasks

If the source, timing, or task behavior looks unusual, pause access first and preserve the necessary logs.

Collaboration ends Revoke access and remove sensitive data

Verify that old keys can no longer connect and confirm that project materials have been handled according to the handoff requirements.

Connection troubleshooting

Troubleshoot by layer, from the order to client logs

Do not change the address, network, credentials, and client settings at the same time. Verify one layer at a time and preserve the exact error and timestamp to shorten the path to the cause.

  1. 01

    Confirm order status

    First confirm that service delivery is complete, the current term is valid, and the model and node match the order. Actual availability is determined by the real-time status returned by the console.

    Order layer
  2. 02

    Check the host address

    Check the address, port, and account name character by character; do not use historical connection records. When the address changes, update local aliases and automation configuration as well.

    Addressing layer
  3. 03

    Check local network policy

    Switch to a trusted alternative network for comparison, and check whether the local firewall, corporate egress policy, proxy settings, or DNS resolution is affecting the connection.

    Network layer
  4. 04

    Verify credentials and host fingerprint

    Confirm that you are using the correct key and account. If the fingerprint is unexpected, do not bypass verification; stop connecting and check the host information against a trusted source.

    Authentication layer
  5. 05

    Check system services

    If SSH works but the graphical session does not, check the corresponding services separately. If the graphical session works but a script fails, check the shell, paths, and permissions.

    Service layer
  6. 06

    Collect client logs

    Keep the timestamp, client version, exact error text, reproduction steps, and completed checks. When submitting a support request, do not write only “unable to connect.”

    Evidence layer
Ready to begin

Choose a configuration, then follow this checklist to connect

Three fixed configurations cover lightweight builds, everyday development, and large-model inference. After ordering, connect to the physical node using the order confirmation details and migrate your development environment step by step.