2026 SSH sans tête : cinq mythes sur Node, PATH, TTY, nvm et PREFIX npm global
La CLI OpenClaw et le Gateway supposent des racines de configuration inscriptibles, un runtime Node stable et une commande globale résolvable. Les shells interactifs satisfont cela via des profils ; les sessions SSH non login pures ne le font pas. Le même hôte paraît vert sous ssh -t et rouge sous automatisation sans TTY alloué, produisant command not found ou des installateurs qui se figent sur une invite sans expliquer pourquoi. Un Mac nu loué vous permet d ancrer les commandes d acceptation et les champs de ticket sur une machine et un récit de compte au lieu de synchroniser du folklore entre portables et cloud.
Les hôtes à faible latence proche et les résidences M4 Pro lointaines diffèrent surtout par le temps mural des téléchargements de dépendances et par l envie de boucles doctor lourdes sur de grandes couches de mémoire unifiée ; le protocole Gateway reste identique. Gardez la première moitié du runbook identique sur les deux paliers et ne divergez que les lignes d achat pour la région et le SKU. Le bissectage profond launchd et ports reste dans la liste d installation et l article token launchd.
Sans bureau partagé, chaque ligne de journal devient la trace d audit. Coller les chemins réels de node et le prefix npm dans le ticket réduit fortement le temps de triage le week-end. Quand plusieurs fournisseurs mélangent leurs vocabulaires, le terme Mac cloud recouvre des implémentations différentes ; ici nous parlons de nœuds dédiés KVMNODE.
Ne confondez pas le dossier personnel développeur avec nvm et le dossier du compte de service. launchd lit les EnvironmentVariables du plist tandis que le login interactif charge d autres fichiers. Le doctor non interactif énumère ces écarts avant que vous ne découpiez le JSON à la main.
La présence du TTY ne concerne pas seulement l esthétique du prompt ; elle conditionne si l installateur lit stdin. Lorsque des drapeaux CI existent, curl peut convenir ; sans TTY, npm global avec PREFIX explicite gagne en reproductibilité. Quand vous changez PREFIX, documentez la ligne PATH dans le même ticket.
Ne vous limitez pas à node -v : affichez aussi which node et which openclaw pour révéler les doubles voies nvm contre Node système.
PATH de login pour launchd ou SSH non login : validez sous le même type de session que le Gateway, pas seulement dans bash -l.
Installateurs avec invites sans TTY : vérifiez les drapeaux CI ou passez à npm global avec PREFIX plutôt qu à des boucles curl aveugles.
Sauter doctor et éditer JSON à la main : risque d état partiel ; le doctor non interactif émet au moins une liste.
Lier Gateway à 0.0.0.0 par défaut : commencez par des vérifications loopback puis suivez accès distant pour tunnels ou Tailscale.
Les comptes SSH partagés doivent copier ces contrôles dans le même modèle de changement que la gouvernance nœud partagé pour éviter d écraser le prefix npm ou de mélanger deux binaires openclaw.
Ajoutez une fenêtre de gel calendaire : maintenance fournisseur, mises à jour Apple et sorties OpenClaw peuvent coïncider la même semaine. Sans politique sur les bumps mineurs, les post mortems accusent des fantômes plutôt que des changements réels.
La latence entre Paris et Singapour diffère de celle vers la côte ouest américaine ; l ordre doctor reste identique. Ce qui change, c est le temps d attente lors de grosses réparations node_modules et la marge pour paralléliser la compilation.
Pour la sécurité, convenez à l avance quel processus côté portable détient le port local du tunnel ; cela évite les discussions nocturnes floues.
Les journaux d acceptation hebdomadaires devraient préciser si des métadonnées de connexion sensibles sont conservées et combien de temps, afin d aligner l exploitation avec la conformité sans rouvrir le débat à chaque incident.
Matrices : curl contre npm, résidence proche contre M4 Pro lointain
L installation sans tête prouve l achèvement sous votre TTY et type de session actuels, pas le choix de la commande la plus élégante. Collez les tableaux dans le wiki interne à côté de la matrice de responsabilité de l alignement CLI : sans coque d application macOS, la CLI est la seule source de vérité sur le binaire qui lance le Gateway.
| Chemin | Adéquation | Risque |
|---|---|---|
| Script curl officiel | TTY présent ou drapeaux CI pris en charge | Blocage sur invites sans TTY |
| npm global openclaw | Automatisation pure avec PREFIX épinglé | PATH sans bin global |
| Mélange sans nettoyage | Non recommandé | Fantômes de double binaire |
| Profil d hôte | Usage typique | Quand passer au M4 Pro |
|---|---|---|
| M4 proche 16 ou 24 Go | Résidence faible latence, sondes légères | Canaux parallèles ou compilation lourde |
| M4 Pro lointain 64 Go | Longues boucles doctor | Le budget accepte un SLA de latence |
| Mode gateway distant | Clients locaux, gateway cloud | Voir gateway distant |
L acceptation sans tête commence par Node et les chemins which, puis ports et jetons.
L achat et la plateforme ne convergent que lorsque les embranchements sont écrits comme champs de commande plutôt que comme ambiance.
Le coût opérationnel dépasse rarement la seule location ; il inclut du temps de triage non auditable. Pendant deux semaines, joignez codes de sortie curl contre npm, vingt dernières lignes stderr et résumés doctor à chaque ticket pour trancher script contre réseau avec des données, comme le guide régions ancre le RTT dans les fiches de changement ; ici les ancrages sont PREFIX et ports d écoute.
Quand le volume d incidents grimpe après une campagne agents, standardisez quel utilisateur possède les globals npm et quel répertoire personnel porte la config OpenClaw sur la page d index du wiki.
La ligne mélange sans nettoyage est le schéma de défaite le plus fréquent : restes curl anciens plus bin npm neuf, launchd choisit l ancien au hasard. Des instantanés hebdomadaires d une ligne which facilitent les deltas.
Divisez les tests d acceptation en boucle locale sur l hôte cloud puis tunnel depuis le portable, pas seulement un ping depuis le bureau.
Après avoir collé les matrices, ajoutez noms responsables et notes de rollback dans le même bloc pour éviter que les nouveaux ne copient des tableaux sans verbes d action.
Si la finance demande pourquoi un second SKU, répondez avec le temps moyen de restauration sur trois incidents récents ; la dérive PATH bat souvent des portables bon marché.
Lire openclaw doctor --non-interactive et limites des tunnels SSH
Le doctor non interactif transforme les lacunes en éléments de travail triables plutôt qu en folklore de chat. Exportez un fichier d environnement stable sur l hôte cloud avant doctor pour que les sessions SSH successives n héritent pas de variables différentes. Lorsque les portables doivent joindre le Gateway, préférez le transfert local SSH depuis la boucle locale cloud vers un port portable, puis évaluez Tailscale depuis l accès distant, au lieu d exposer zéro zéro zéro zéro pendant les essais.
node -v which node which openclaw openclaw doctor --non-interactive ssh -N -L 18789:127.0.0.1:18789 user@cloud-mac-host
Astuce : les ports varient ; la ligne tunnel est illustrative, alignez le texte production sur les articles installation et distant.
Si doctor contredit l état Gateway, montez l échelle de diagnostic avant d effacer les configs.
Exportez éventuellement LANG C.UTF-8 et épinglez LC_ALL sur la première SSH pour éviter des branches locales rares sur poste mais fragiles en lot. Consignez ulimit -n dans les champs d acceptation pour éviter les plafonds de descripteurs sur les petits SKU.
Les noms utilisateur et hôte de la ligne tunnel doivent correspondre au bon de commande ; avec bastion en deux sauts, fixez quelle étape forward.
Conserver la sortie doctor comme pièce jointe permet des diffs ultérieures ; copier-coller le chat casse souvent les retours ligne.
Six étapes : encoder la mise en production OpenClaw sans tête comme champs d acceptation
Geler la majeure Node : documentez vingt ou plus ; imprimez node -v et chemins sous le type de session cible.
Épingler le prefix npm global : stockez npm prefix -g avec PATH sur le même ticket.
Choisir curl ou npm : enregistrez présence TTY et drapeaux ; en cas d échec changez de chemin plutôt que réessayer aveuglément.
Exécuter doctor non interactif et archiver : téléversez comme artefact de build pour rejouer.
Valider loopback puis tunnel : alignez le texte région sur la page de commande.
Enregistrer sondes cron : liez les sondes cron et limites split brain dans le runbook.
Six étapes exigent aussi des lignes de retour arrière : désinstaller le paquet global, restaurer l ancien plist, fermer le tunnel, une commande chacune dans le pied de wiki pour éviter de reconstruire des hôtes entiers à trois heures du matin.
Permuter l ordre recrée le piège classique où le port semble ouvert alors qu un autre processus écoute.
Alignez les champs d acceptation sur le langage des notes de version pour raccourcir les dialogues dev exploitation ; côté KVMNODE, les noms de région suivent l interface de commande.
Politique de référence : types de session, discipline non interactive, ordre d escalade
Types de session : exécutez which et doctor sous login interactif, non login et TTY alloué au moins une fois chacun.
Non interactif : les étapes sans présence humaine doivent se terminer avec des codes explicites ; ne jamais avaler stderr.
Escalade : après doctor vert seulement, passez à l échelle et au split token launchd ; ne sautez pas l état.
Avertissement : exposer des ports d admin sur bastions partagés peut violer les lignes de base sécurité ; tunnels et ACL passent par le contrôle des changements.
Pour plusieurs gammes d agents, planifiez un instantané hebdomadaire léger : même script se connecte, imprime which, lance doctor, capture l état Gateway sur une ligne ; ouvrez l analyse humaine profonde seulement quand les deltas dépassent le seuil.
La politique C est un contrat avec l astreinte : si quelqu un escalade avant doctor vert, le ticket revient avec un lien de liste plutôt qu en brûlant du temps senior sur des éditions supposées.
Capturez la génération matérielle dans la même table que les versions logicielles : M4 contre M4 Pro change l agressivité des réparations doctor parallèles même si la version CLI est identique, car la compilation d extensions natives consomme toujours la bande passante mémoire unifiée.
Si la finance demande pourquoi un second SKU pour le travail sans tête, répondez avec le temps moyen de restauration sur trois incidents : les portables moins chers n abaissent souvent pas ce chiffre quand la dérive PATH domine entre équipes et fuseaux.
Emprunter un portable comme hôte Gateway temporaire cache versions Node, PATH et interfaces d écoute dans des habitudes personnelles ; prouver pourquoi la connectivité a basculé la nuit devient impossible. Contracter un hôte cloud Apple Silicon dédié avec région, SKU et sémantique de file explicites transforme la résidence en ingénierie. Pour les équipes couvrant Singapour, le Japon, la Corée, Hong Kong, la côte est et la côte ouest qui doivent passer de validation proche à résidence M4 Pro lointaine, la location cloud Mac mini KVMNODE est souvent le choix opérationnel le plus solide : isolation bare metal, échelons de configuration complets, conditions de location élastiques. Voir le centre d aide et la page tarifs location.