Collecter et vérifier l’empreinte de l’hôte
Avant la première connexion, collectez la clé publique ED25519 de l’hôte, calculez son empreinte et comparez-la aux informations de livraison. N’ignorez jamais une alerte sans vérification.
ZoneMini fournit des machines physiques dédiées, non virtualisées. Utilisez SSH pour lancer des builds, le partage d’écran macOS pour les tâches graphiques ou enregistrez un nœud fixe comme CI Runner. Vérifiez d’abord les informations de connexion, puis choisissez le point d’accès. N’exposez jamais vos identifiants dans les conversations ou les journaux de pipeline.
Les trois méthodes peuvent coexister. Pour l’automatisation quotidienne, privilégiez SSH ou le Runner. N’activez le partage d’écran que pour consulter Xcode, modifier les réglages système ou effectuer un diagnostic graphique.
Utilisez-le pour cloner des dépôts, installer des dépendances, lancer des tests, exécuter des builds Xcode en ligne de commande, consulter les journaux, synchroniser les artefacts et vérifier le disque. Les scripts stables doivent utiliser l’authentification par clé et définir un alias du nœud dans la configuration SSH locale.
Utilisez-le pour consulter les projets Xcode, effectuer un débogage graphique, vérifier les autorisations de la Trousse d’accès, régler l’affichage et confirmer les archivages. À la fin, verrouillez la session et ne laissez aucune information sensible sur le bureau ou dans le presse-papiers.
Après avoir enregistré le nœud dans votre système CI, attribuez des tags selon le dépôt, la branche ou le type de tâche. Le Runner doit utiliser un répertoire de travail dédié et un jeton limité ; définissez des règles claires de nettoyage pour le cache et les artefacts de build.
Une connexion échoue souvent non pas à cause de l’hôte, mais parce que l’adresse du nœud, le nom d’utilisateur, la stratégie réseau ou l’état de la commande ne correspondent pas. Suivez cet ordre pour éviter les essais répétés.
Connectez-vous à la console pour vérifier que l’instance a été livrée, puis confirmez le modèle, le nœud et la durée de location associés à la commande. Chaque information de connexion doit correspondre à cette instance.
Copiez l’adresse d’hôte fournie dans la console. N’utilisez pas une adresse provenant d’un ancien ticket, script ou échange d’équipe. Pour plusieurs nœuds, ajoutez un tag indiquant leur usage.
Le nom d’utilisateur SSH et celui de la session graphique peuvent différer selon le point d’accès. Ne devinez pas le nom par défaut et n’inscrivez jamais un mot de passe temporaire en dur dans un script.
Les identifiants temporaires servent uniquement à la première connexion. Après une connexion réussie, mettez-les immédiatement à jour et conservez les nouveaux identifiants dans le processus de gestion des mots de passe approuvé par l’équipe.
Vérifiez que votre réseau autorise le trafic sortant vers le port cible. Les réseaux d’entreprise, proxys et logiciels de sécurité peuvent limiter SSH ou les connexions graphiques ; consultez d’abord l’administrateur réseau.
Enregistrez le nœud, son usage, son responsable, son empreinte d’hôte et la date de rotation des identifiants. Après la première connexion, ne négligez pas les alertes de changement d’empreinte.
Ne collez pas d’identifiants temporaires, de clés privées SSH, de jetons de dépôt ou de certificats de signature dans des tickets publics, des journaux complets de pipeline ou des documents non chiffrés. Pour demander de l’aide, fournissez uniquement des sorties de commandes dont les données sensibles ont été masquées.
Ouvrir la console pour vérifier les informations de connexionLes commandes ci-dessous utilisent des valeurs fictives et ne contiennent ni adresse de nœud ni identifiants réels. Remplacez-les par les informations fournies dans la console et exécutez-les sur un réseau fiable.
Avant la première connexion, collectez la clé publique ED25519 de l’hôte, calculez son empreinte et comparez-la aux informations de livraison. N’ignorez jamais une alerte sans vérification.
Créez une paire de clés distincte pour le nœud ZoneMini. Conservez la clé privée sur un appareil local contrôlé et inscrivez la clé publique dans la liste d’autorisation distante.
Enregistrez dans la configuration SSH l’adresse de l’hôte, le nom d’utilisateur, le chemin de la clé et les paramètres de maintien de session afin d’éviter toute saisie manuelle et toute confusion entre les nœuds.
Vérifiez que la connexion par clé fonctionne, puis mettez à jour les identifiants temporaires. Ne supprimez pas l’unique méthode de connexion disponible avant d’avoir validé la clé.
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
Le partage d’écran convient au débogage graphique Xcode, à la vérification des réglages système et au contrôle des archivages. Les scripts de build, la collecte des journaux et les tâches par lots doivent rester sur SSH.
Dans le Finder macOS, sélectionnez « Aller » puis « Se connecter au serveur », saisissez l’adresse correspondant aux informations de livraison et ouvrez la session avec le nom d’utilisateur autorisé et les identifiants.
vnc://<node-address>
Utilisez l’option de connexion au serveur du Finder ; n’enregistrez pas vos identifiants via un raccourci d’origine inconnue.
Vérifiez le nom d’utilisateur et l’adresse du nœud, puis saisissez les identifiants. En équipe, ne partagez pas un même compte permanent.
En cas d’instabilité réseau, réduisez d’abord la résolution ou la qualité des couleurs. Un bureau haute résolution augmente le volume transmis et la latence des entrées.
Ne copiez ni clé privée, ni jeton complet, ni mot de passe en clair. Avant tout collage entre sessions, vérifiez la fenêtre cible et l’utilisateur courant.
Fermer le client ne signifie pas forcément quitter le bureau. Une fois le travail terminé, verrouillez la session et fermez les fenêtres sensibles inutiles.
Les postes Windows ou Linux nécessitent un outil de connexion graphique compatible. Les raccourcis clavier, le presse-papiers, les couleurs, le zoom et les écrans multiples peuvent varier selon le client ; commencez par une tâche non sensible.
Choisissez un client compatible avec le protocole cible, le chiffrement du transport et les résolutions personnalisées. La source d’installation doit être validée par l’équipe et maintenue à jour.
Vérifiez d’abord le DNS, le routage et le port cible, puis testez la session graphique. Le proxy d’entreprise, le pare-feu sortant et les changements de réseau sans fil peuvent interrompre la session.
Commencez avec un seul écran et une résolution moyenne, puis augmentez progressivement la taille de l’affichage. En cas d’écran noir ou d’image tronquée, revenez à une résolution plus basse et recréez la session.
Elle convient au quotidien si la saisie reste stable, les journaux lisibles, les raccourcis courants correctement mappés et la session terminable en toute sécurité. Si la tâche est entièrement scriptable, privilégiez SSH ou le CI Runner.
Le Runner doit utiliser un compte, un répertoire de travail et un jeton distincts et limités. Commencez par un pipeline de test minimal, puis ajoutez la signature, le cache et l’archivage.
Séparez le code source, le cache des dépendances, les fichiers intermédiaires et les artefacts finaux afin de faciliter le nettoyage et l’analyse de l’espace disque.
Le jeton ne doit autoriser que le dépôt cible et les opérations nécessaires. Ne réutilisez pas de jeton d’accès personnel et ne l’inscrivez ni dans le dépôt ni dans la sortie de build.
Définissez des tags selon la version de Xcode, le type de projet, le modèle de machine ou la charge afin d’éviter l’exécution d’une tâche incompatible dans le mauvais environnement.
Lancez d’abord la vérification des dépendances et les tests unitaires, puis créez l’archive. En cas d’échec, conservez les journaux nécessaires sans téléverser tout le répertoire utilisateur.
Après confirmation du stockage des artefacts, supprimez les identifiants temporaires, les trousseaux temporaires, les caches expirés et les répertoires de build inutiles.
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
Chaque autorisation doit avoir un responsable, un usage et une date d’expiration. Les comptes partagés, jetons de dépôt et fichiers temporaires délaissés font progressivement perdre toute traçabilité à un environnement de build fixe.
Chaque mainteneur utilise une clé distincte. Lorsqu’un membre quitte le projet, retirez sa clé publique sans affecter l’accès des autres.
Même pour un environnement partagé, distinguez les connexions personnelles des comptes automatisés. Le Runner ne doit pas utiliser le compte administrateur quotidien.
Consignez la rotation des jetons de dépôt, d’enregistrement du Runner et d’accès temporaire, puis supprimez rapidement les jetons expirés.
Les tâches de build ne doivent obtenir que les droits nécessaires sur les dépôts et branches concernés. Utilisez des identifiants différents pour téléverser les artefacts et lire le code source.
Verrouillez la session avant de quitter le bureau, fermez les fenêtres contenant des données sensibles et videz le presse-papiers inutile.
À la fin de la tâche, supprimez les clés privées temporaires, jetons à usage unique, trousseaux temporaires et fichiers d’autorisation inutilisés.
Ne changez pas successivement de mot de passe, d’adresse et de client au hasard. Notez d’abord le type d’erreur, l’heure, le réseau local, le nœud et le point d’accès, puis effectuez les vérifications correspondantes.
| Symptôme | Vérifier d’abord | Action à effectuer | À joindre à la demande d’assistance |
|---|---|---|---|
| Délai de connexion dépassé | Adresse du nœud, réseau local, règles de sortie, port cible | Passer à un réseau de confiance ; tester la connectivité du port ; vérifier qu’il ne s’agit pas d’une ancienne adresse | Heure, nœud, type de réseau client, résultat de test masqué |
| Échec de l’authentification | Nom d’utilisateur, chemin de la clé, droits du fichier, mise à jour des identifiants | Utiliser les journaux SSH détaillés pour identifier la clé sélectionnée ; vérifier la clé publique autorisée | Ligne d’erreur, nom d’utilisateur, empreinte de clé, sans clé privée ni mot de passe complet |
| Changement d’empreinte de l’hôte | Changement d’adresse du nœud, reconstruction de l’instance ou modification de l’alias local | Interrompre la connexion ; vérifier à nouveau l’empreinte dans la console ; mettre à jour la fiche après confirmation | Nœud, ancienne empreinte, nouvelle empreinte et heure de première détection |
| Écran noir de la session graphique | Session verrouillée, résolution d’affichage, compatibilité du client | Réduire la résolution ; recréer la session ; vérifier l’état du système via SSH | Système client, version du client, réglages d’affichage et capture masquée |
| Résolution anormale | Zoom du client, mode multi-écran, taille de la fenêtre | Revenir à un seul écran et une résolution moyenne, puis rétablir les réglages un à un | Résolution attendue, résolution réelle, facteur de zoom et type de client |
| Interruptions fréquentes de la session | Changements de réseau sans fil, proxy, stratégie d’inactivité, instabilité de la liaison | Utiliser un réseau stable ; activer le maintien de session SSH ; placer les tâches longues dans une session persistante | Fréquence et durée des interruptions, changements réseau et extraits de journaux associés |
nc -vz <node-address> 22
route -n get <node-address>
ssh -vvv zonemini-build 2>&1 | tee ssh-debug.log
Indiquez le numéro de commande, l’une des offres ZoneMini M4 Core / ZoneMini M4 Plus / ZoneMini M4 Pro, le nœud, l’heure, la méthode de connexion, les étapes de reproduction, le résultat attendu et les journaux masqués. N’envoyez ni clé privée de certificat, ni jeton de dépôt, ni mot de passe complet.
Préparez l’usage, le nombre de tâches simultanées, la mémoire nécessaire, le nœud cible et la durée de location. Consultez les informations de connexion des commandes existantes dans la console ; pour les questions de configuration, consultez d’abord le centre d’aide.