One key per person
Do not let multiple people share one private key. Individual keys make it easier to identify users, revoke access separately, and reduce the risk that one leak affects the entire team.
REMOTE ACCESS / CONNECTION GUIDE
Use browser remote desktop from the console when you need Xcode, system settings, or graphical tools. Use SSH for builds, file synchronization, or automation. Both methods connect to the same dedicated physical machine, where your files, dependencies, and runtime environment remain available on the node.
01 / CHOOSE A METHOD
Browser remote desktop and SSH serve different purposes. The former provides a full macOS graphical interface, while the latter is ideal for scriptable, low-bandwidth, and long-running tasks.
| Comparison | Browser remote desktop | SSH |
|---|---|---|
| Best for | Xcode graphical work, system settings, app interface checks, and keyboard and display configuration | Build scripts, Git operations, dependency installation, log inspection, automation, and batch file processing |
| Interaction | A remote desktop displayed in your browser, controlled with your local keyboard and pointer | A terminal command line that supports keys, terminal multiplexers, and scripts |
| Before you start | The node is online, your browser allows required session features, and you have the node login details | Node address, username, private key file, and a verified first-time host fingerprint |
| Network guidance | Prioritize a stable connection; reduce resolution and color quality when latency is high | Lower bandwidth requirements; use a terminal multiplexer and write logs to a file for long-running tasks |
| How to exit | Save your work first, then exit the desktop session or close the remote view | Use exit to end the session normally without interrupting tasks that are still writing |
02 / GRAPHICAL INTERFACE
The complete process usually includes checking node status, verifying credentials, establishing the session, and adapting local input. If the desktop does not load, do not repeatedly submit login requests.
Sign in to the console and find the target node in the instance list. Confirm that the node ID, region, and status match your order, then open the connection entry once the status shows online. If your team manages multiple Cloud Macs, verify the node ID first to avoid entering the wrong environment.
Use the login details shown by the console for this node; do not reuse credentials from another node. When pasting, check for spaces at the beginning or end. If access is handed over within your team, use a controlled credential process rather than sharing it in group chats or build logs.
After the desktop loads, open a text area with no sensitive content and test letters, numbers, symbols, Command, Option, and switching between language inputs. If keystrokes do not match your local keyboard, align the local and remote system layouts before entering certificates or commands.
For text editing and Xcode work, start with 1920 × 1080 . If the display has noticeable latency, lower the resolution first, then reduce color quality. Once the network is stable again, raise each setting one at a time to identify which setting caused the lag.
Wait for the current connection to finish, then refresh the node details once. Confirm that your browser is not blocking required session features, and retest in a separate window without extensions.
Record the key pressed, the expected character, and the actual character. Align the local and remote layouts first, then check whether the browser is intercepting shortcut keys.
Confirm that browser zoom is at the standard level, then match the remote resolution. Do not change browser zoom, system scaling, and remote image quality at the same time.
03 / COMMAND LINE
Before connecting over SSH, confirm the address, username, and source of the private key. The first host fingerprint must be compared with the console record; never skip this check.
ssh-keygen -t ed25519 -f ~/.ssh/mw_node
Create a separate key for the MacWorker node and set a local passphrase. Do not overwrite the default key already used by your team.
export NODE_HOST="Node address shown in the console"
export NODE_USER="Username shown in the console"
Use the address and username currently shown in the console. These environment variables apply only to the current terminal session and keep connection parameters out of repeated command history.
ssh -i ~/.ssh/mw_node "$NODE_USER@$NODE_HOST"
When the terminal displays the fingerprint, pause and compare the algorithm type and complete fingerprint character by character with the console record. Confirm the connection only when they match exactly.
exit
Before exiting, confirm that file writes, dependency installation, and build tasks are complete. Put long-running tasks in a recoverable session instead of relying on a single terminal window to stay connected.
04 / SECURITY BASELINE
A dedicated physical node does not share compute resources with other tenants, but your team still needs to manage keys, credentials, membership changes, and login records.
Do not let multiple people share one private key. Individual keys make it easier to identify users, revoke access separately, and reduce the risk that one leak affects the entire team.
Do not store credentials in code repositories, build logs, or project documentation. When a handoff is required, use a team-approved controlled process and review the access scope afterward.
When a member leaves the project or changes roles, remove the corresponding public key and console access the same day. Also rotate any shared credentials they may have accessed.
Review login times, sources, and failed attempts at least once per team release cycle. If activity falls outside expected working hours or regional patterns, freeze the relevant credentials before investigating.
05 / FILE TRANSFERS
Before uploading, identify the files the task actually needs. When downloading, retrieve only the target artifacts. Dependency caches, temporary directories, and historical archives should not be transferred with the entire project by default.
scp -i ~/.ssh/mw_node -r ./BuildInput "$NODE_USER@$NODE_HOST:~/Work/"
Use this for a one-time upload of a clearly defined directory. Exclude local logs, temporary artifacts, and unnecessary historical files before transfer, and confirm that the destination has enough disk space.
scp -i ~/.ssh/mw_node "$NODE_USER@$NODE_HOST:~/Work/output.zip" ./Artifacts/
Organize and verify the artifact on the node first, then download a single archive. After downloading, compare the file size or checksum so incomplete artifacts do not enter the next stage.
Sync only the current branch and resources required for the task; do not copy the entire working directory by default.
Batch transfers on high-latency networks and avoid periods of local network congestion.
Keep the source files and delete intermediate archives only after confirming that the size and checksum match.
06 / SESSION OPTIMIZATION
First determine whether the problem is with graphical transmission or command execution. A laggy remote desktop does not necessarily indicate reduced node performance; if SSH responds normally, adjust display settings first.
Keep one display area and a moderate resolution initially. If latency is noticeable, lower the resolution step by step without changing multiple parameters at once. Increase text clarity after interaction becomes smooth.
Coding and system configuration usually do not require the highest color quality. Lower image quality to reduce screen updates, then restore it temporarily for visual checks.
Run builds, tests, and dependency work in a terminal multiplexer session, and write output to a log file at the same time. Reconnect and resume the session instead of starting the task over.
tmux new -s build
tmux attach -t build
Break long workflows into repeatable steps, write output to a fixed directory, and record the most recently completed stage. After a disconnect, check processes and artifacts before restarting anything.
07 / QUICK TROUBLESHOOTING
During troubleshooting, keep the node ID, time of occurrence, connection method, and complete error summary. Change only one variable at a time so you can identify what actually fixed the issue.
Check the username and private key path first, then verify the private key permissions and that the public key is configured on the target node. Use verbose mode to confirm which key the client actually tried:
ssh -v -i ~/.ssh/mw_node "$NODE_USER@$NODE_HOST"
Do not send a complete private key or detailed logs containing sensitive fields to anyone else. When submitting a ticket, provide only the error stage, algorithm information, and a sanitized summary.
Confirm that the node is still online and wait for the current session to finish establishing. Then retry in a separate browser window without extensions and check whether the browser is blocking required session features. If SSH connects but the desktop remains blank, record the browser version, time of occurrence, and node ID before submitting a ticket.
In a text area with no sensitive content, record the expected and actual characters, then compare the local and remote keyboard layouts. Check whether Command, Option, or Control is being intercepted by the local system or browser shortcuts. Retest each key after adjustment; do not experiment directly in a credential field.
Check the local network, target address, node status, and client settings in that order. Retest on a known-stable local network first, then confirm that the address has not expired or been copied incorrectly. If both connection methods to the same node time out, record the local time, network, and duration of the error.
Stop the connection immediately. Do not bypass the warning by disabling verification or deleting the known-hosts record. Confirm whether the node address changed, then verify the new fingerprint and reason for the change through the console. Remove the old record for that address and reconnect only after verification is complete.
READY TO CONNECT
Confirm that the node is online, then open browser remote desktop or configure SSH based on your task. When you need both graphical tools and command-line collaboration, both sessions can connect to the same dedicated physical Mac.