Host-Fingerabdruck erfassen und prüfen
Erfassen Sie vor der ersten Verbindung den ED25519-Hostschlüssel und vergleichen Sie seinen Fingerabdruck mit den bereitgestellten Daten. Ignorieren Sie Warnungen erst nach dieser Prüfung.
ZoneMini bietet dedizierte physische Hosts statt virtueller Maschinen. Nutzen Sie SSH für Build-Befehle, die macOS-Bildschirmfreigabe für grafische Aufgaben oder registrieren Sie einen festen Host als CI Runner. Prüfen Sie zuerst die Verbindungsdaten und legen Sie Zugangsdaten niemals in Chats oder Pipeline-Logs offen.
Alle drei Methoden können parallel genutzt werden. Für die tägliche Automatisierung sind SSH oder Runner vorzuziehen. Öffnen Sie die Bildschirmfreigabe nur für Xcode, Systemeinstellungen oder grafische Diagnosen.
Zum Klonen von Repositories, Installieren von Abhängigkeiten, Ausführen von Tests und Xcode-Kommandozeilen-Builds, Anzeigen von Logs, Synchronisieren von Artefakten und Prüfen des Speicherplatzes. Stabile Skripte sollten Schlüssel verwenden; hinterlegen Sie den Host-Alias in der lokalen SSH-Konfiguration.
Zum Anzeigen von Xcode-Projekten, grafischen Debuggen, Prüfen von Schlüsselbundberechtigungen, Anpassen der Anzeige und Kontrollieren von Archivierungsergebnissen. Sperren Sie die Sitzung nach der Arbeit und lassen Sie keine vertraulichen Daten auf Desktop oder Zwischenablage zurück.
Nach der Registrierung des Hosts im bestehenden CI-System können Labels nach Repository, Branch oder Aufgabentyp vergeben werden. Runner verwenden ein eigenes Arbeitsverzeichnis und eingeschränkte Tokens; für Cache und Build-Artefakte sollten klare Löschregeln gelten.
Verbindungsfehler sind oft keine Hostprobleme, sondern entstehen durch nicht übereinstimmende Hostadresse, Benutzernamen, Netzwerkregeln oder Bestellstatus. Prüfen Sie die folgenden Punkte in dieser Reihenfolge.
Melden Sie sich in der Konsole an, prüfen Sie die Bereitstellung der Instanz und bestätigen Sie Modell, Standort und Mietdauer der aktuellen Bestellung. Die Verbindungsdaten müssen eindeutig zu dieser Instanz gehören.
Kopieren Sie die in der Konsole angegebene Hostadresse. Verwenden Sie keine Adressen aus alten Tickets, Skripten oder Team-Chats. Vergeben Sie bei mehreren Hosts aussagekräftige Zweck-Aliase.
SSH- und Benutzername der grafischen Sitzung können je nach Zugang unterschiedlich sein. Raten Sie keinen Standardbenutzernamen und hinterlegen Sie temporäre Passwörter niemals fest im Skript.
Temporäre Zugangsdaten sind nur für die erste Anmeldung bestimmt. Aktualisieren Sie sie sofort nach erfolgreicher Anmeldung und speichern Sie die neuen Daten im freigegebenen Passwortmanagement.
Stellen Sie sicher, dass das aktuelle Netzwerk ausgehende Verbindungen zum Zielport zulässt. Unternehmensnetzwerke, Proxys und Sicherheitssoftware können SSH oder grafische Verbindungen blockieren.
Dokumentieren Sie Host, Zweck, Verantwortliche, Fingerabdruck und Zeitpunkt des Zugangsdatenwechsels. Ignorieren Sie Warnungen zu geänderten Host-Fingerabdrücken nach der ersten Verbindung nicht.
Fügen Sie temporäre Zugangsdaten, private SSH-Schlüssel, Repository-Tokens oder Signaturzertifikate niemals öffentlichen Tickets, vollständigen Pipeline-Logs oder unverschlüsselten Dokumenten hinzu. Senden Sie dem Support nur bereinigte Befehlsausgaben.
Verbindungsdaten in der Konsole prüfenDie folgenden Befehle enthalten Platzhalter und keine echten Hostadressen oder Zugangsdaten. Ersetzen Sie die Platzhalter durch die Angaben aus der Konsole und führen Sie die Befehle in einem vertrauenswürdigen Netzwerk aus.
Erfassen Sie vor der ersten Verbindung den ED25519-Hostschlüssel und vergleichen Sie seinen Fingerabdruck mit den bereitgestellten Daten. Ignorieren Sie Warnungen erst nach dieser Prüfung.
Erstellen Sie für den ZoneMini-Host ein eigenes Schlüsselpaar. Bewahren Sie den privaten Schlüssel auf einem kontrollierten lokalen Gerät auf und hinterlegen Sie den öffentlichen Schlüssel in der Autorisierungsliste des Remotehosts.
Speichern Sie Hostadresse, Benutzername, Schlüsselpfad und Keepalive-Parameter in der SSH-Konfiguration, damit Sie sie nicht jedes Mal manuell eingeben oder Hosts verwechseln.
Bestätigen Sie zunächst die erfolgreiche Schlüsselanmeldung und aktualisieren Sie erst danach die temporären Zugangsdaten. Entfernen Sie die einzige funktionierende Anmeldemethode nicht vorher.
ssh-keyscan -t ed25519 <node-address> > zonemini_hostkey
ssh-keygen -lf zonemini_hostkey
ssh-keygen -t ed25519 -f ~/.ssh/zonemini_ed25519
ssh-copy-id -i ~/.ssh/zonemini_ed25519.pub <user>@<node-address>
ssh -i ~/.ssh/zonemini_ed25519 <user>@<node-address>
Host zonemini-build
HostName <node-address>
User <user>
IdentityFile ~/.ssh/zonemini_ed25519
ServerAliveInterval 30
ServerAliveCountMax 3
Die Bildschirmfreigabe eignet sich für grafisches Xcode-Debugging, Systemeinstellungen und Archivprüfungen. Build-Skripte, Logs und Batch-Aufgaben sollten weiterhin über SSH ausgeführt werden.
Wählen Sie im macOS-Finder „Gehe zu“ und „Mit Server verbinden“, geben Sie die in den Verbindungsdaten angegebene Serveradresse ein und melden Sie sich mit dem autorisierten Benutzernamen und den Zugangsdaten an.
vnc://<node-address>
Verwenden Sie den Finder-Zugang „Mit Server verbinden“ und speichern Sie Zugangsdaten nicht über unbekannte Verknüpfungen.
Prüfen Sie Benutzername und Hostadresse, bevor Sie die Zugangsdaten eingeben. Verwenden Sie in der Zusammenarbeit nicht dieselben dauerhaften Anmeldedaten.
Reduzieren Sie bei Netzwerkschwankungen zuerst Auflösung oder Farbqualität. Ein Desktop mit hoher Auflösung erhöht Datenvolumen und Eingabeverzögerung.
Kopieren Sie niemals private Schlüssel, vollständige Tokens oder Klartextpasswörter. Prüfen Sie vor dem Einfügen in eine andere Sitzung das Zielfenster und den aktuellen Benutzer.
Das Schließen des Clients beendet nicht zwangsläufig den Desktop. Sperren Sie die Sitzung nach der Arbeit und schließen Sie vertrauliche Fenster.
Auf Windows- oder Linux-Workstations benötigen Sie ein kompatibles Tool für grafische Verbindungen. Tastenkürzel, Zwischenablage, Farben, Skalierung und mehrere Monitore können sich je nach Client unterscheiden. Testen Sie zuerst eine nicht vertrauliche Aufgabe.
Wählen Sie einen Client mit Unterstützung für das Zielprotokoll, verschlüsselte Übertragung und benutzerdefinierte Auflösungen. Die Installationsquelle sollte vom Team geprüft sein; halten Sie den Client aktuell.
Prüfen Sie zuerst DNS, Routing und Zielport und testen Sie danach die grafische Sitzung. Unternehmensproxy, Ausgangsfirewall und WLAN-Wechsel können Sitzungen unterbrechen.
Validieren Sie zunächst mit einem Monitor und mittlerer Auflösung und erhöhen Sie die Bildgröße schrittweise. Bei schwarzem oder abgeschnittenem Bildschirm mit niedrigerer Auflösung eine neue Sitzung starten.
Der Ablauf ist erst alltagstauglich, wenn Eingaben stabil funktionieren, Logs klar lesbar sind, gängige Tastenkürzel korrekt zugeordnet werden und Sitzungen sicher beendet werden können. Vollständig skriptbare Aufgaben sollten über SSH oder CI Runner laufen.
Runner sollten ein eigenes Konto, Arbeitsverzeichnis und eingeschränktes Token verwenden. Führen Sie zuerst eine minimale Testpipeline aus und ergänzen Sie danach signierte Builds, Caches und Archivierung.
Trennen Sie Quellcode, Abhängigkeitscache, Build-Zwischendateien und endgültige Artefakte, um Löschregeln festzulegen und Speicherverbrauch zu analysieren.
Das Token darf nur das Ziel-Repository und erforderliche Vorgänge autorisieren. Verwenden Sie keine persönlichen Zugriffstokens und schreiben Sie Tokens weder in das Repository noch in Build-Ausgaben.
Vergeben Sie Labels nach Xcode-Version, Projekttyp, Modell oder Aufgabenlast, damit inkompatible Aufgaben nicht in einer falschen Umgebung ausgeführt werden.
Führen Sie zuerst Abhängigkeitsprüfung und Unit-Tests aus, danach die Archivierung. Bewahren Sie bei Fehlern notwendige Logs auf und laden Sie nicht ungefiltert das gesamte Benutzerverzeichnis hoch.
Löschen Sie nach der Bestätigung, dass die Artefakte im Zielspeicher liegen, temporäre Zugangsdaten, temporäre Schlüsselbunde, abgelaufene Caches und nicht mehr benötigte Build-Verzeichnisse.
set -euo pipefail
WORK_DIR="$HOME/ci-work/project"
RESULT_DIR="$HOME/ci-results"
mkdir -p "$WORK_DIR" "$RESULT_DIR"
cd "$WORK_DIR"
git fetch --prune
git checkout "$CI_COMMIT_REF"
xcodebuild \
-scheme "$CI_SCHEME" \
-destination "generic/platform=iOS" \
test
xcodebuild \
-scheme "$CI_SCHEME" \
-archivePath "$RESULT_DIR/App.xcarchive" \
archive
find "$WORK_DIR" -name "*.tmp" -delete
Jede Berechtigung braucht eine verantwortliche Person, einen Zweck und ein Ablaufdatum. Nicht gepflegte gemeinsame Konten, Repository-Tokens und temporäre Dateien beeinträchtigen allmählich die Nachvollziehbarkeit fester Build-Umgebungen.
Jede verantwortliche Person verwendet einen eigenen Schlüssel. Entfernen Sie beim Ausscheiden aus dem Projekt den zugehörigen öffentlichen Schlüssel, ohne den Zugriff anderer zu beeinträchtigen.
Auch in gemeinsam genutzten Umgebungen sollten persönliche und automatisierte Konten getrennt sein. Runner dürfen kein Administratorkonto für den täglichen Gebrauch verwenden.
Dokumentieren Sie den Wechsel von Repository-Tokens, Runner-Registrierungstokens und temporären Zugangsdaten und löschen Sie abgelaufene Tokens umgehend.
Build-Aufgaben erhalten nur die benötigten Rechte für Repository und Branch. Für Artefakt-Uploads und Quellcodezugriff können unterschiedliche Zugangsdaten verwendet werden.
Sperren Sie die Sitzung vor dem Verlassen des Desktops, schließen Sie vertrauliche Fenster und leeren Sie nicht mehr benötigte Zwischenablageinhalte.
Löschen Sie nach Abschluss der Aufgabe temporäre private Schlüssel, Einmal-Tokens, temporäre Schlüsselbunde und nicht mehr verwendete Autorisierungsdateien.
Wechseln Sie nicht planlos Passwörter, Adressen und Clients. Notieren Sie zuerst Fehlertyp, Zeitpunkt, lokales Netzwerk, Host und Zugang und führen Sie anschließend die passende Prüfung durch.
| Symptom | Zuerst prüfen | Mögliche Maßnahme | Bei der Supportanfrage beifügen |
|---|---|---|---|
| Verbindungs-Timeout | Hostadresse, lokales Netzwerk, Ausgangsregeln, Zielport | Vertrauenswürdiges Netzwerk wählen; Portverbindung testen; alte Adresse ausschließen | Zeitpunkt, Host, Client-Netzwerktyp, bereinigtes Prüfergebnis |
| Authentifizierung fehlgeschlagen | Benutzername, Schlüsselpfad, Dateirechte, Aktualität der Zugangsdaten | Ausführliche SSH-Logs zur Ermittlung des verwendeten Schlüssels; autorisierten öffentlichen Schlüssel prüfen | Fehlerzeile, Benutzername, Schlüsselfingerabdruck, kein privater Schlüssel oder vollständiges Passwort |
| Host-Fingerabdruck geändert | Hostadresse, Neuaufbau der Instanz oder lokaler Alias geändert? | Verbindung stoppen; Fingerabdruck in der Konsole erneut prüfen; erst danach den Eintrag aktualisieren | Host, alter und neuer Fingerabdruck, Zeitpunkt der ersten Feststellung |
| Schwarzer Bildschirm in grafischer Sitzung | Sitzung gesperrt, Anzeigeauflösung, Clientkompatibilität | Auflösung reduzieren; Sitzung neu aufbauen; Systemstatus über SSH prüfen | Clientsystem, Clientversion, Anzeigeeinstellungen, bereinigter Screenshot |
| Falsche Auflösung | Clientskalierung, Mehrmonitorbetrieb, Fenstergröße | Auf einen Monitor und mittlere Auflösung zurücksetzen, dann Einstellungen einzeln wiederherstellen | Gewünschte und tatsächliche Auflösung, Skalierungsfaktor, Clienttyp |
| Sitzung wird häufig unterbrochen | WLAN-Wechsel, Proxy, Leerlaufregeln, Netzwerkschwankungen | Stabiles Netzwerk verwenden; SSH-Keepalive konfigurieren; lange Aufgaben in einer persistenten Sitzung ausführen | Unterbrechungshäufigkeit, Dauer, Netzwerkänderungen und relevante Logausschnitte |
nc -vz <node-address> 22
route -n get <node-address>
ssh -vvv zonemini-build 2>&1 | tee ssh-debug.log
Geben Sie Bestellnummer, ein Modell aus ZoneMini M4 Core / ZoneMini M4 Plus / ZoneMini M4 Pro, Host, Zeitpunkt, Verbindungsart, Reproduktionsschritte, erwartetes Ergebnis und bereinigte Logs an. Laden Sie keine privaten Zertifikatsschlüssel, Repository-Tokens oder vollständigen Passwörter hoch.
Legen Sie Zweck, Anzahl paralleler Aufgaben, benötigten Arbeitsspeicher, Zielstandort und Mietdauer fest. Verbindungsdaten bestehender Bestellungen finden Sie in der Konsole; Konfigurationsfragen beantwortet zunächst das Hilfezentrum.