Verbinden Sie sich per VNC und SSH mit Ihrem Cloud Mac

Sobald die E-Mail mit Ihren Zugangsdaten eingetroffen ist, sollten Sie innerhalb von 5 Minuten im Remote-Desktop sein. Diese Seite erklärt Grafikzugriff, Kommandozeilenzugriff, Latenzwerte und Sicherheitshärtung – einfach der Reihe nach befolgen.

Access Overview

Drei Zugriffsarten – wählen Sie nach Anwendungsfall

Jeder Mac mini wird standardmäßig mit aktiviertem VNC (5900) und SSH (22) ausgeliefert, die Zugangsdaten stecken in derselben verschlüsselten E-Mail. Tailscale ist optional – Installation und Verwaltung übernehmen Sie selbst.

VNC-Grafikdesktop

Sie sehen den vollständigen macOS-Desktop. Ideal für Zertifikatsinstallation, die Xcode-Oberfläche oder 4K-Videoschnitt – alles, was ohne Maus nicht geht. Empfohlene Bandbreite: ≥10 Mbit/s.

SSH-Kommandozeile

Der Hauptkanal für Build-Skripte, die Registrierung von CI-Runnern und rsync-Übertragungen. Unempfindlich gegenüber Latenz, funktioniert sogar über 2G – unsere Empfehlung für den Alltag.

Tailscale-Netzwerk (optional)

Bindet den Cloud Mac in Ihr privates Netzwerk ein, Direktverbindung per interner IP, keine offenen Ports nach außen. Sie haben volle Administratorrechte – ein einzeiliger brew-Befehl reicht zur Installation.

MethodeProtokoll / PortGeeignet fürUngeeignet fürLatenzempfindlichkeit
VNCRFB / 5900Grafische Bedienung, Zertifikatsinstallation, Simulator-Interaktion, VideoschnittLang laufende AutomatisierungsaufgabenHoch, empfohlen <120ms
SSHSSH / 22Skripte, CI-Runner, Dateisynchronisation, lang laufende tmux-SitzungenEinmalige Konfigurationen, die eine grafische Oberfläche erfordernNiedrig, funktioniert auch bei 300ms
TailscaleWireGuard / UDPZugriff von mehreren Geräten, Tunnel-Basis nach Schließung öffentlicher PortsMinimalszenarien ohne zusätzliche SoftwareAbhängig von der zugrunde liegenden Leitung
VNC Setup

VNC-Verbindung: zwei Wege, drei Minuten

Weg A: Integrierte Bildschirmfreigabe von macOS

Wenn Sie lokal ebenfalls einen Mac nutzen, müssen Sie nichts installieren. Drücken Sie im Finder ⌘K (Gehe zu → Mit Server verbinden), geben Sie die Adresse aus der Zugangsdaten-E-Mail im folgenden Format ein und tragen Sie anschließend das VNC-Passwort ein.

Weg B: RealVNC Viewer (Windows / Linux)

Geben Sie beim Anlegen der Verbindung Knoten-IP:5900 ein, wählen Sie bei Encryption Prefer on, stellen Sie Picture Quality zunächst auf Automatic und passen Sie sie nach dem Verbindungsaufbau anhand der folgenden Tabelle manuell an. Für Scaling empfiehlt sich 100%, um unscharfen Text durch erneute Skalierung zu vermeiden.

Wird beim ersten Verbindungsaufbau eine Fingerprint-Bestätigung angezeigt, vergleichen Sie diese mit dem Host-Fingerprint am Ende der Zugangsdaten-E-Mail, bevor Sie akzeptieren. Nach 5 falschen Passworteingaben greift eine 60-sekündige Sperre – das ist die Standard-Schutzmaßnahme gegen Brute-Force-Angriffe, kein Fehler.

local — screen sharing
# Per Finder-Shortcut ⌘K oder direkt im Terminal öffnen
$ open vnc://203.0.113.10:5900
# Auflösung während der Sitzung anpassen (auf dem Remote-Host ausführen)
$ displayplacer "id:main res:1920x1080 hz:60"
✓ connected: mini-tokyo-07 (M4, 24GB)

Bildqualitätsstufen richtig einstellen

Die VNC-Performance wird durch drei Variablen bestimmt: Auflösung × Farbtiefe × Kompressionsqualität. Grundsatz: zuerst die Auflösung senken, dann die Farbtiefe, erst zuletzt die Kompressionsqualität – Kompressionsartefakte beeinträchtigen das Lesen von Code stärker als eine niedrige Auflösung.

StufeAuflösungFarbtiefeJPEG-QualitätGeschätzte BandbreiteGeeignetes Netzwerk
Flüssigkeit priorisieren1280×72016-bit4/93–5 Mbit/sMobiler 4G-Hotspot, transkontinentale Leitungen
Ausgewogen (Standardempfehlung)1920×108016-bit6/98–12 Mbit/sHeim-Breitband, nahegelegener Knoten
Bildqualität priorisieren2560×144024-bit9/920–35 Mbit/sGigabit-LAN + Latenz <60ms

Die Reduzierung der Farbtiefe von 24-bit auf 16-bit spart rund 40 % Bandbreite und ist beim Programmieren praktisch nicht wahrnehmbar; für Schnitt und Farbkorrektur wieder auf 24-bit umschalten.

SSH Practice

SSH in der Praxis: Keys, Dateiübertragung, lang laufende Aufgaben

Wenn Sie bei der Bestellung bereits einen SSH-Public-Key hinterlegt haben, ist bei Auslieferung direkt der Key-Login aktiv. Falls nicht, melden Sie sich zunächst mit dem Initialpasswort aus der E-Mail an und deaktivieren Sie anschließend das Passwort-Login mit dem ersten Terminal-Block.

Nur Key-Login
# Lokal: Public Key hochladen (erste Anmeldung per Passwort)
$ ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@203.0.113.10
# Remote: Passwort-Login deaktivieren
$ sudo sed -i '' 's/^#\{0,1\}PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
$ sudo launchctl kickstart -k system/com.openssh.sshd
✓ Ab jetzt wird ausschließlich Key-Authentifizierung akzeptiert
Dateiübertragung mit rsync / sshfs
# Projektverzeichnis inkrementell hochladen (fortsetzbar)
$ rsync -avzP --exclude .git ./MyApp admin@203.0.113.10:~/work/
# Remote-Verzeichnis lokal einbinden (macFUSE erforderlich)
$ sshfs admin@203.0.113.10:/Users/admin/work ~/remote-work
# Nach Gebrauch aushängen
$ umount ~/remote-work
tmux für lang laufende Aufgaben
# Sitzung für einen vollständigen Archive-Build starten
$ tmux new -s build
$ xcodebuild archive -scheme MyApp -destination 'generic/platform=iOS'
# Mit Strg-b d trennen – läuft auch bei Verbindungsabbruch weiter
# Später wieder anhängen
$ tmux attach -t build

Drei bewährte Arbeitsgewohnheiten

  • Lang laufende Aufgaben gehören immer in tmux.Eine SSH-Trennung beendet die Aufgabe nicht, solange sie in tmux läuft; im Vordergrund gestartete Prozesse werden dagegen mit der Sitzung gekillt.
  • Große Dateien über rsync übertragen, nicht per VNC-Zwischenablage ziehen.rsync bietet Prüfsummen und Fortsetzbarkeit, beides fehlt beim Drag-and-Drop – besonders bei 50-GB-Assets ein Muss.
  • Legen Sie in Ihrer lokalen ~/.ssh/config einen Alias für den Knoten an und ergänzen Sie ServerAliveInterval 30 – danach reicht ssh tokyo, und auch NAT-Timeouts sind damit gelöst.
Latency Data

Gemessene Latenzwerte je Standort

Prüfen Sie diese Tabelle, bevor Sie einen Standort wählen: Die Werte sind ICMP-Ping-Mediane in Millisekunden – je niedriger, desto direkter das Gefühl. Faustregel: <60ms fühlt sich beim Ziehen fast wie lokal an, 60–120ms sind für den Entwickleralltag unproblematisch, >150ms sprechen für reines SSH oder Headless-Betrieb.

Ausgangsstadt→ Standort Tokio→ Standort Seoul→ Standort Silicon ValleyEmpfehlung
Peking5246152Seoul bevorzugt, Tokio als Backup
Shanghai3842148Tokio bevorzugt
Shenzhen4844158Seoul oder Tokio, beide geeignet
Tokio234108Lokale Direktverbindung
Seoul332132Lokale Direktverbindung
Singapur6874168Tokio leicht im Vorteil, für VNC ausgewogene Stufe empfohlen
Los Angeles1021286Silicon Valley bevorzugt
Testzeitraum 24.07.2026 – 30.07.2026, 4 Messzeiträume täglich Stichprobengröße je Stadt-Standort-Kombination mtr -c 500, Median-Wert Netzbetreiber-Basis innerhalb Chinas Mischmessung über China Telecom (163) und China Mobile (CMI), Mittelwert; außerhalb jeweils lokale Backbone-ISPs

Möchten Sie selbst nachmessen? Die Test-IPs der einzelnen Standorte und die mtr-Nutzung finden Sie im Abschnitt zur Netzwerk-Selbstdiagnose auf der Seite Bei Problemen, inklusive Vorlage für Traceroute-Support-Tickets.

Low Latency

Vier Tipps für niedrige Latenz

1. Standort anhand der Messwerte wählen

Physische Distanz lässt sich nicht softwareseitig lösen. Der Unterschied zwischen 40ms und 150ms in der obigen Tabelle holt keine Kompressionseinstellung wieder auf. Nutzer in Asien wählen üblicherweise Tokio oder Seoul, Nutzer in Nord- und Südamerika Silicon Valley.

2. Kompressionsstufe gegen Flüssigkeit tauschen

Bei durchschnittlicher Leitung VNC auf die Stufe „Flüssigkeit priorisieren“ umstellen: 16-bit Farbtiefe + mittlere JPEG-Qualität heben die Framerate meist von 12fps auf über 25fps – kein Nachziehen mehr beim Scrollen durch Code.

3. Kabel bevorzugen, bei WLAN 5GHz nutzen

2,4-GHz-WLAN schwankt oft um ±30ms, Kabel lässt sich auf ±3ms drücken. VNC reagiert empfindlicher auf Jitter als auf die absolute Latenz – 50ms im Schnitt mit starkem Jitter fühlen sich schlechter an als stabile 80ms.

4. Grafik über VNC, Rechenlast über SSH

Kompilieren, Packaging und Dateiübertragung laufen im Hintergrund über SSH, VNC bleibt reserviert für Aktionen, die wirklich die Maus brauchen. Ohne Bildschirm-Refresh steht die Bandbreite ganz der Datenübertragung zur Verfügung.

Hardening

Sicherheits-Checkliste

Die Maschine ist Ihr exklusiver physischer Knoten – die Absicherung liegt in Ihrer Verantwortung. Arbeiten Sie diese fünf Punkte der Reihe nach ab, dann ist die öffentliche Angriffsfläche weitgehend geschlossen.

  • SSH-Standardport ändern.Ersetzen Sie Port 22 in /etc/ssh/sshd_config durch einen hohen Port (z. B. 2222) – automatisierter Scan-Traffic sinkt dadurch um rund 90 %.
  • Passwort-Login deaktivieren, nur Keys zulassen.Die beiden Befehle aus dem vorigen Abschnitt einmal ausführen, dann bleibt es dauerhaft aktiv; das Initialpasswort ist danach hinfällig.
  • fail2ban gegen Brute-Force installieren.Nach brew install fail2ban die sshd-Jail aktivieren – standardmäßig 5 fehlgeschlagene Versuche führen zu einer 10-minütigen Sperre, CI-Läufe bleiben unbeeinflusst.
  • VNC nicht ungeschützt öffentlich lassen, sondern über einen SSH-Tunnel führen.Nach Einrichtung des rechts gezeigten Tunnels den Port 5900 im Firewall-Bereich des Kontrollpanels für das öffentliche Netz sperren.
  • Zertifikate und Keys in einem eigenen Schlüsselbund ablegen.Für CI-Signierung einen separaten Schlüsselbund anlegen und eigenständig entsperren, nicht mit dem Login-Schlüsselbund vermischen.
VNC über SSH-Tunnel
# Lokal Tunnel aufbauen: Remote-Port 5900 auf lokalen Port 5901 mappen
$ ssh -N -L 5901:localhost:5900 admin@203.0.113.10
# In einem weiteren Fenster den lokalen Port verbinden
$ open vnc://localhost:5901
✓ VNC-Datenverkehr läuft vollständig SSH-verschlüsselt
Headless CI

Headless-CI-Modus: minimaler Betrieb ohne VNC

Dient die Maschine ausschließlich als Self-Hosted Runner, empfiehlt sich der durchgängige Verzicht auf eine grafische Sitzung: kleinere Angriffsfläche, geringerer Speicherverbrauch, keine VNC-Bandbreite.

  • Bildschirmfreigabe-Dienst deaktivieren und nur SSH mit geändertem Port und reinem Key-Login belassen – die öffentliche Angriffsfläche reduziert sich auf einen einzigen Port.
  • Runner dauerhaft über launchd betreiben:Das svc.sh-Skript des GitHub-Actions-Runners erzeugt automatisch einen LaunchDaemon – Autostart, automatischer Neustart nach Absturz, automatische Wiederverbindung nach Verbindungsabbruch.
  • Schlüsselbund vorab per Skript entsperren:Vor dem Build security unlock-keychain ausführen – die Signierung ist dann nicht mehr auf ein Popup in einer grafischen Sitzung angewiesen.
  • Die kostenlose Neuinstallation pro Zeitraum ist Ihre Absicherung: Ist die Umgebung einmal gründlich verschmutzt, ist eine Neuinstallation schneller als eine Reparatur. Den DerivedData-Cache persistent halten – wie beschrieben in der CI-Integrationsanleitung.
Minimaler Headless-Runner
# Bildschirmfreigabe deaktivieren (bei Bedarf jederzeit wieder aktivierbar)
$ sudo launchctl disable system/com.apple.screensharing
# GitHub-Actions-Runner registrieren und dauerhaft betreiben
$ ./config.sh --url https://github.com/org/repo --token XXXX
$ sudo ./svc.sh install && sudo ./svc.sh start
# Signierungs-Schlüsselbund vor dem Build entsperren
$ security unlock-keychain -p "$KC_PASS" ci.keychain-db
✓ runner online, no GUI session
Troubleshooting

Schnellübersicht zur Fehlerbehebung

Symptom zuordnen, zuerst den Ein-Zeilen-Befehl ausprobieren; hilft das nicht, Symptom und bereits versuchte Schritte per Support-Ticket melden – Erstreaktion innerhalb von 2 Stunden.

SymptomHäufigste UrsacheEin-Zeilen-Fix
Schwarzer VNC-BildschirmBildschirmfreigabe-Dienst unerwartet beendetsudo launchctl kickstart -k system/com.apple.screensharing
VNC ruckelt, Frames fehlenBildqualitätsstufe übersteigt die LeitungskapazitätFarbtiefe auf 16-bit, JPEG-Qualität auf 4/9, Auflösung auf 1280×720 reduzieren
SSH-Verbindung läuft in TimeoutVerbindung erfolgt weiterhin über Port 22 nach Portwechsel, oder lokale Firewall blockiertssh -p 2222 admin@203.0.113.10 -v ausführen, um zu sehen, wo der Handshake stoppt
SSH verweigert KeyBerechtigungen des lokalen Private Keys zu offenchmod 600 ~/.ssh/id_ed25519
SSH trennt häufigNAT-Idle-Timeout kappt lang laufende Verbindungenprintf "ServerAliveInterval 30\n" >> ~/.ssh/config
Zwischenablage synchronisiert nichtRemote-Zwischenablage-Dienst hängtPer SSH killall pboard ausführen, der Dienst startet automatisch neu
Tunnel erreicht Port 5901 nichtTunnel-Prozess bereits beendetssh -N -L 5901:localhost:5900 admin@203.0.113.10 erneut ausführen

Eine ausführlichere Schritt-für-Schritt-Diagnose (inklusive fehlgeschlagener Xcode-Signierung und Schlüsselbund-Entsperrung) finden Sie im Handbuch zur Fehlerbehebung

Zugangsdaten in 10 Minuten per E-Mail – heute Abend schon verbunden

VNC-/SSH-Zugangsdaten kommen in der Regel innerhalb von 10 Minuten nach Zahlung, Abrechnung tageweise, Rückerstattung nicht genutzter Tage innerhalb von 7 Tagen.