Lorsqu’un parc Mac mini M4 ne se limite plus à de la CI sans tête, le goulot d’étranglement de la collaboration est le point d’entrée humain : un shell interactif qui tient le Wi‑Fi d’aéroport, la congestion transcontinentale et la mise en veille du portable. SSH reste le canal sobre pour l’automatisation ; Mosh échange une partie de la simplicité d’exploitation contre une frappe prévisible sur liaisons bruitées — au prix d’un second chapitre pare-feu autour de l’UDP et du NAT.

Ce texte se découpe volontairement du récit fan-out rsync multi-nœuds, qui répond à la question « comment les binaires atterrissent de façon homogène sur les workers ». Ici, on répond à « comment des ingénieurs restent branchés assez longtemps » pour trier des tests flaky, suivre des journaux de build et coordonner un correctif sans blocage au milieu d’une commande. Si vous concevez des arbres d’artefacts et des chemins de promotion, commencez par la matrice 2026 cluster Mac mini M4 (rsync & verrous). Si vous éclatez des passerelles multi-AZ et avez besoin de digests webhook, voyez les notes OpenClaw multi-AZ sur clustervps. L’index complet est sur la page d’accueil du blog.

SSH demeure le plan de contrôle par défaut : git+ssh, scp, rsync --rsh=ssh et la plupart des runners CI. Mosh est un upgrade ciblé pour les longues sessions interactives lorsque le RTT grimpe et que le jitter rend un volet tmux visqueux. Aucun des deux protocoles ne sérialise les écritures vers un même arbre DerivedData partagé : cela relève toujours du système de fichiers et de l’orchestration.

Règle 2026 pour les équipes inter-régions : batch et automatisation restent sur SSH avec timeouts explicites ; pair debugging, release captain et astreinte shell évaluent Mosh dès que la sortie UDP est validée par la sécurité. La matrice ci-dessous parle d’expérience opérateur, pas de débit de synchronisation d’artefacts — gardez ces budgets sur la piste rsync décrite dans l’article dédié.

Signal Privilégier SSH Privilégier Mosh
Survie de session Scripts de reconnexion, ServerAliveInterval, tmux detach/attach Roaming, veille/réveil, forte perte de paquets sans echo local figé
Surface conformité Un port TCP, journaux et bastions matures Listes UDP, packaging mosh-server sur le Mac
Builds parallèles Identique à Mosh : isolation de workspace + flock sur la promotion Identique à SSH : ne confondez pas transport et exclusion mutuelle

Liste ports / pare-feu (checklist)

Recopiez les lignes dans les groupes de sécurité, les listes de sortie d’entreprise et le champ « notes » de la politique pare-feu du nœud. Après chaque changement, retestez depuis trois chemins réels — Wi‑Fi bureau, partage 4G, VPN split-tunnel — car une approbation papier reflète rarement le retour UDP sous NAT symétrique.

Plan Protocole / port Remarques
Contrôle SSH TCP 22 (ou port personnalisé) Rotation des clés, rate limits, bastions. Automatisation, scp et git+ssh partagent ce chemin.
Données Mosh UDP 60000–61000 par défaut (réduisez côté serveur si la politique l’exige) Exige mosh-server sur le Mac. Schéma typique : SSH OK, Mosh bloqué après login → UDP filtré ou retour bloqué.
NAT / retour Flux établis / associés en état Documentez perte et RTT par géographie ; DPI ou « optimisation » UDP casse parfois Mosh alors que le ping semble sain.

Contrôles d’acceptation avant de déclarer le cluster « prêt Mosh » : (1) lancer mosh user@host depuis chaque classe de réseau ; (2) couper/rallumer le Wi‑Fi en tapant — l’echo local doit rester utilisable ; (3) si vous resserrez la fenêtre UDP, reflétez les mêmes bornes dans les scripts de lancement côté client pour que le support réponde toujours la même chose.

Si la sécurité impose du tout-interdit en sortie, proposez un sous-réseau bastion où l’UDP 60000–61000 n’est autorisé que vers les préfixes clustervps, pendant que le VLAN général reste SSH-only. Le blast radius Mosh reste visible dans les tableaux de bord au lieu de se fondre dans des exceptions « any/any UDP ».

Stratégie combinée verrous de build / flock

Mosh améliore le rendu des caractères et leur survie sous perte de paquets ; il ne sérialise pas les écrivains concurrents sur un même répertoire d’artefacts canonique. Traitez le parallélisme en compilation large, promotion étroite : chaque branche a son worktree isolé, et seule l’étape de promotion — copie vers l’arbre validé, écriture du manifeste, notifications — passe sous un flock exclusif.

  • Emplacement des fichiers de verrou : SSD local ou volume métadonnées basse latence. Tenir des verrous sur SSHFS ou NFS lointain amplifie la fausse contention et masque les vrais blocages.
  • Largeur de section critique : n’entourez que la promotion, pas toute une compile Xcode ou SwiftPM. Un verrou trop large transforme la ferme M4 en machine single-thread.
  • Humain vs robot : quand un ingénieur lance des scripts depuis Mosh, ceux-ci doivent appeler le même point d’entrée « promote » que la CI pour éviter le contournement « juste un hotfix rapide ».
  • Acceptation parallèle : ouvrez deux shells interactifs et faites la course sur le script de promotion ; l’un doit sortir vite avec un code documenté (par ex. 17 pour « verrou occupé ») tandis que l’observabilité classe l’événement en mis en file, pas en gel.

Une barrière minimale que GitHub Actions et les humains peuvent partager — gardez-la à côté du guide rsync interne, mais exécutez-la depuis le transport shell de votre choix :

flock -n /var/tmp/m4-promote.lock bash -c '
  ./scripts/promote_artifacts.sh
' || { echo "verrou promote occupé"; exit 17; }

Prolongez la checklist avec des signaux infra : alertez lorsque le temps d’attente du verrou dépasse un budget percentile, et corrélez les pics avec des sessions Mosh simultanées pour distinguer « deux humains se sont croisés » d’« orage CI ». Pour cadrer capacité et budget avant de figer les changements réseau, alignez finance et plateforme sur la même grille tarifaire publique (voir encart en bas de page).

FAQ

Mosh peut-il remplacer flock ou l’exclusion mutuelle CI ? Non. Mosh est transport et rendu pour terminaux interactifs. La possibilité pour deux jobs d’écrire le même répertoire relève du layout, du parallélisme orchestrateur et des verrous explicites sur la promotion.

Le TCP 22 est ouvert — pourquoi Mosh échoue-t-il ? Parce que Mosh a aussi besoin d’un plan de données UDP et d’un mosh-server fonctionnel sur l’hôte. SSH amorce la session ; il ne remplace pas la plage UDP du tableau. Validez le retour de trafic et tout middlebox qui « aide » l’UDP.

Faut-il migrer l’automatisation vers Mosh ? En général non. Le travail non interactif s’audit mieux en SSH avec codes de sortie déterministes et timeouts. Réservez Mosh aux humains qui fixent un compilateur depuis un réseau d’hôtel médiocre.

tmux rend-il Mosh superflu ? tmux protège l’état serveur si SSH tombe ; Mosh lisse en plus la frappe côté client. Beaucoup empilent les deux : Mosh jusqu’au bord datacenter, tmux sur le nœud pour relais entre opérateurs.

Guide d’exploitation uniquement. UDP et NAT varient selon FAI et campus. Les plages de ports suivent les défauts amont courants — vérifiez avec votre version installée de mosh avant d’en faire des SLA contractuels.
Capacité Mac interactive

Parcourir les offres sans compte

Comparez régions et SKU sur la page tarifs publique : aucune connexion n’est requise pour consulter. Quand vous êtes prêts, passez par le tunnel d’achat, provisionnez des Mac mini M4 dédiés, puis collez cette checklist pare-feu + flock dans vos runbooks.

Aller à l’achat (consultation libre) Comparer les forfaits