Figment.so
Mac hostingWebsite hostingGuidesHow to usePricing

Transfer Files To and From a Remote Mac Guide

Waiting for a 500 MB asset folder to arrive as an email attachment defeats the purpose of working on a remote Mac. SSH-based tools — scp, rsync, and SFTP — are already installed on macOS, Linux, and Windows (via WSL or a dedicated client), and they move gigabytes reliably over a single TCP connection. This guide shows when to use each, lands on a worked speed-and-cost example for a repeated 500 MB sync, and finishes with integrity checks.

Which Figment Plan Supports These Commands

scp, rsync, and SFTP all need an SSH listener on the remote Mac. Figment's $29/month virtual Intel macOS environment is accessed through the browser console; you can run shell commands and outbound transfers from its desktop terminal, but inbound SSH on port 22 is not currently exposed, so a laptop running scp user@vm:... cannot connect directly. If you need inbound SSH for bidirectional transfers, the physical offers — i3 Mac from $49/month and M-series Mac from $95/month — are configured per request; confirm SSH exposure and port in the quote. Start that request at /mac-hosting/start; the full lineup is at /mac-hosting.

Specific M4 chip, RAM, and disk at the $95 entry point are confirmed in the quote, not fixed on this page. For a direct equivalent-hardware comparison, CloudMac publishes an M4 / 16 GB / 256 GB plan at $99.99/month and $999/year; its 256 GB row is marked "Reserve now" while 512 GB and 1 TB are "Fully reserved." MacStadium's smallest listed tier is M2.S at $109/month (8 GB / 256 GB) per macstadium.com/pricing, with support and a 99.99% uptime claim included. Price alone is one axis; the Figment managed tiers ($249 Managed Build Mac and $999 Managed Mac Team) bundle CI setup, backups, monitoring, and monthly support hours that the self-serve tiers above do not.

Three Transfer Methods: Choose the Right Tool

MethodBest forIncrementalGUI
scpSingle files or one-time directory copyNoNo
rsyncLarge folders, repeated syncs, bandwidth-sensitiveYesNo
Finder / WinSCP (SFTP)Exploratory browsing, drag-and-dropNoYes

Reach for scp when the path is known and the copy happens once. Reach for rsync when the folder is large, the sync repeats (growing assets during a build), or bandwidth is constrained — after the first run, rsync moves only changed blocks. Use SFTP in Finder or WinSCP when you want to click around the remote filesystem.

scp: Syntax and Common Examples

scp uses SSH for transport and respects ~/.ssh/config, so an existing key and host alias work immediately. Capital -P sets the port (lowercase -p preserves timestamps — a frequent confusion). All flags are documented in the OpenBSD scp(1) manual, which also notes that since OpenSSH 9.0 scp uses the SFTP subsystem by default.

# Upload a single file to the rental Mac's Desktop
scp -i ~/.ssh/mac_rental ./build.zip user@rental-host:~/Desktop/

# Upload a directory recursively with compression
scp -r -C -i ~/.ssh/mac_rental ./assets/ user@rental-host:~/Projects/assets/

# Download a build output directory from the rental Mac
scp -r -i ~/.ssh/mac_rental user@rental-host:~/build/output/ ./local-output/

# Non-standard SSH port
scp -P 2222 -i ~/.ssh/mac_rental ./config.plist user@rental-host:~/Library/Preferences/

Quote remote paths that contain spaces:

scp -i ~/.ssh/mac_rental user@rental-host:"~/My Project/Assets/" ./local-assets/

Leave -O (legacy SCP protocol) off unless the server requires it; the default SFTP mode handles special characters more safely.

rsync: Incremental Sync over SSH

rsync compares source and destination and transfers only the differing blocks. For a 500 MB folder where most files are unchanged, the second run moves kilobytes.

# Upload: sync local assets folder to rental Mac
rsync -avz --progress \
  -e "ssh -i ~/.ssh/mac_rental" \
  ./assets/ \
  user@rental-host:~/Projects/assets/

# Download: pull build output to local
rsync -avz --progress \
  -e "ssh -i ~/.ssh/mac_rental" \
  user@rental-host:~/build/output/ \
  ./local-output/

# Mirror: delete files on remote that no longer exist locally
rsync -avz --delete \
  -e "ssh -i ~/.ssh/mac_rental" \
  ./src/ \
  user@rental-host:~/Projects/src/

Flag meanings: -a archive (permissions, timestamps, symlinks), -v verbose, -z compress in transit, --progress per-file progress, --delete removes files missing from the source — use carefully.

Windows users can run these inside WSL 2 or Cygwin. The trailing slashes on ./assets/ vs ./assets matter: the former copies the folder's contents, the latter copies the folder itself.

Finder's Connect to Server: Mounting a Remote Mac

macOS Finder can mount a remote Mac over SFTP so files move by drag-and-drop. Apple's Connect to Server guide documents the Go → Connect to Server path and favorites; the keyboard shortcut is Cmd-K, and macOS accepts an sftp:// URL in that dialog.

  1. In Finder, press Cmd-K (or Go → Connect to Server).
  2. Enter sftp://user@rental-host.
  3. Authenticate with a password or key passphrase.
  4. The rental Mac appears as a volume in the Finder sidebar.

The connection runs over SSH, so the same key pair used by scp works. On Windows:

  • WinSCP (free, open source): enter Host, Username, and attach the private key under Advanced → Authentication.
  • FileZilla (free): Site Manager → SFTP with a key-file option.

Both offer split-pane drag-and-drop with a progress bar, which is practical for a 500 MB bundle.

Worked Example: Repeated 500 MB Asset Sync

Suppose a game team re-uploads a 500 MB SpriteAssets/ folder to a rented Mac every workday. On the first upload, rsync transfers close to the full 500 MB. On a typical day, perhaps 20 MB of sprites change. Over a 20-workday month:

  • First run: ~500 MB
  • 19 incremental runs: ~19 × 20 MB = ~380 MB
  • Total: ~880 MB/month

Compared to scp -r of the full folder every day (20 × 500 MB = 10,000 MB), rsync cuts outbound bandwidth by roughly 91%. If the remote Mac is a $95/month M-series rental, the sync overhead is a few minutes a day; if you add CI backups and monitoring, the $249/month Managed Build Mac handles the orchestration without the team scripting it.

Command Reference Card: Five Common Scenarios

# ── 1. Upload a single file ──────────────────────────────────────
scp -i ~/.ssh/mac_rental ./release-1.2.ipa user@rental-host:~/Desktop/

# ── 2. Upload a directory recursively with compression ───────────
scp -r -C -i ~/.ssh/mac_rental ./DesignAssets/ user@rental-host:~/Projects/DesignAssets/

# ── 3. Download Xcode archives ───────────────────────────────────
scp -r -i ~/.ssh/mac_rental user@rental-host:~/Library/Developer/Xcode/Archives/ ./Archives/

# ── 4. Incremental sync (only changed bytes transferred) ─────────
rsync -avz --progress \
  -e "ssh -i ~/.ssh/mac_rental" \
  ./SpriteAssets/ \
  user@rental-host:~/Projects/SpriteAssets/

# ── 5. Mount as SFTP volume in Finder (local macOS → remote Mac) ─
# Press Cmd-K, then enter:
#   sftp://user@rental-host

Verifying Transfer Integrity

After a large transfer, confirm the files arrived intact. macOS and Linux both ship md5 and shasum.

# Single-file check (run on each side, compare output)
md5 ./DesignAssets.zip

# Directory check with SHA-256
find ./DesignAssets -type f | sort | xargs shasum -a 256 > local-checksums.txt
# Then on the remote Mac, run the same command, scp the file back, and diff:
diff local-checksums.txt remote-checksums.txt

If a mismatch appears after rsync, re-run with --checksum to compare contents rather than size/mtime:

rsync -avz --checksum -e "ssh -i ~/.ssh/mac_rental" \
  ./DesignAssets/ user@rental-host:~/Projects/DesignAssets/

Transfer Speed Tips

Compression. scp -C and rsync -z apply zlib before transmission. It helps text, source, and uncompressed images; it rarely helps ZIP, JPEG, or MP4 and can slow those down when CPU time exceeds the bytes saved. Measure on your actual payload.

Cipher choice. On modern CPUs, aes128-gcm@openssh.com and chacha20-poly1305@openssh.com are faster than AES-256 CBC variants:

scp -c aes128-gcm@openssh.com -r ./LargeAssets/ user@rental-host:~/Projects/

Parallelism. rsync is single-threaded per session. For independent folders, run processes side by side to saturate the link:

rsync -avz -e "ssh -i ~/.ssh/mac_rental" ./Assets/Audio/ user@rental-host:~/Assets/Audio/ &
rsync -avz -e "ssh -i ~/.ssh/mac_rental" ./Assets/Video/ user@rental-host:~/Assets/Video/ &
wait

Request a physical Mac rental with SSH exposed at /mac-hosting/start.

Related guides:


Subscribe for Figma design and website publishing guides.


Figment.so

Contact

Twitter

Website pricing

Compute index

About

Privacy

Terms