Aller au contenu principal
Site en cours de refonte — quelques pages peuvent bouger ou évoluer.
02 avril 2026

Zellij 0.44 : partager ton terminal en HTTPS, c’est magique… et ça mérite des garde-fous

Zellij 0.44 permet d’attacher et de partager une session terminal en HTTPS, presque comme un doc collaboratif. Super pour le support et le pairing, dangereux si tu le branches sans règles.

10 min de lecture
32 vues
réactions
Partager :
Zellij 0.44 : partager ton terminal en HTTPS, c’est magique… et ça mérite des garde-fous

Si tu cherches comment partager une session terminal à distance avec Zellij 0.44 (en HTTPS, avec des tokens, et un mode lecture seule), tu es au bon endroit. La feature est franchement impressionnante : tu peux faire entrer quelqu’un dans ta session sans lui ouvrir un SSH sur la machine, et tu peux même lui donner un accès « watch » qui évite pas mal de bêtises.

Mais on va être honnêtes deux secondes : un terminal partagé, c’est aussi une surface d’attaque et un risque opérationnel. Si tu l’actives « pour tester » sur une box qui a accès à de la prod, et que tu as des secrets qui passent à l’écran, tu viens de te créer un nouveau genre de fuite. Donc on va parler usage réel, et garde-fous concrets.

Remote sessions Zellij 0.44 : ce que ça change vraiment (attach en HTTPS)

Le gros changement de Zellij 0.44, c’est le côté « on sort du schéma tmux + SSH ». Jusqu’ici, partager une session, c’était souvent : tu donnes un accès SSH (ou tu passes par un bastion), tu expliques comment attacher à tmux, tu pries pour que la personne ne fasse pas n’importe quoi, et tu acceptes que l’onboarding prenne 15 minutes.

Avec les remote sessions, Zellij introduit une approche plus directe : tu exposes une session Zellij et quelqu’un peut s’y connecter via une URL HTTPS depuis son terminal. Ça paraît anecdotique sur le papier, mais en support et en pairing, ça change le rythme. Moins de friction, moins de « tu as bien la clé SSH ? », moins de temps perdu à aligner les environnements.

Ce qui m’intéresse le plus, c’est que ça force à réfléchir en termes de périmètre de session : qu’est-ce que je partage exactement, avec qui, et avec quel niveau de contrôle. Et là, Zellij fait un truc intelligent avec le mode watch.

Quand ça bat tmux + ssh : support, pair debugging, incident

Je ne vais pas vendre ça comme un remplacement universel de tmux. tmux est ultra fiable, dispo partout, et tu sais exactement ce que tu fais quand tu donnes un accès SSH. En revanche, dès que tu es dans un contexte « humain » (aider un collègue, debug à deux, incident à 3h du matin), l’expérience compte plus que la pure tradition.

Le support interne est un bon exemple. Tu as un dev qui te dit « mon script de migration plante », tu veux voir le contexte exact, les variables, le output, les commandes qu’il tape. Si tu dois passer par un partage d’écran + « lis-moi la commande » + « non, pas celle-là », tu perds 20 minutes. Là, tu peux faire entrer la bonne personne dans la session, et avancer tout de suite.

Autre cas : le pair debugging quand tu es en train de reproduire un bug en environnement de dev/staging. Une personne pilote, l’autre observe, propose des hypothèses, suit les logs, voit les timings. C’est le moment où le mode watch est vraiment précieux : tu veux de la collaboration, pas un deuxième pilote qui peut casser l’état.

Et en incident, ça peut aider à faire du « war room terminal » propre : quelqu’un exécute, les autres regardent et commentent, sans multiplier les accès et sans « ping-pong SSH ». Là encore, ça ne remplace pas un vrai process d’astreinte, mais ça rend les échanges beaucoup plus fluides.

Le mode watch : la collaboration sans le carnage

Le mode watch est, à mon avis, la feature qui rend le partage acceptable en équipe. Parce que le pire scénario, c’est toujours le même : tu partages une session « pour aider », la personne veut être utile, elle tape une commande « juste pour tester », et tu te retrouves avec un état modifié, des logs purgés, un fichier édité, ou une commande destructive lancée sur le mauvais shell.

Avec zellij watch, l’idée est de pouvoir partager une session en lecture seule. Concrètement, tu laisses les gens voir exactement ce qui se passe, mais ils ne peuvent pas interagir comme s’ils étaient au clavier. Pour du support, c’est souvent suffisant. Pour de l’onboarding aussi : montrer un workflow, commenter des raccourcis, naviguer dans un projet, sans risquer la moindre action.

Le point important, c’est que « lecture seule » ne résout pas tout. Si des secrets apparaissent à l’écran, ils sont visibles. Le watch évite le sabotage involontaire, pas la fuite d’infos. C’est un garde-fou opérationnel, pas un bouclier de sécurité.

Tokens, URL et périmètre : le partage terminal, version adulte

Le vrai sujet, c’est moins « comment je partage » que « qu’est-ce que je suis en train d’exposer ». Un terminal, ce n’est pas juste des commandes. C’est des tokens d’API dans l’historique, des variables d’environnement, parfois un prompt qui affiche le nom de cluster, des sorties qui contiennent des IDs, des chemins, des configs. Et selon ton usage, ça peut devenir très vite sensible.

Mon réflexe : considérer un partage de session comme un lien de visioconférence. Si le lien fuite, quelqu’un peut tenter de rentrer. Donc tu travailles sur la durée de vie, la circulation, et le contexte. Je le dis de manière un peu sèche parce que je l’ai vu : le lien posté dans un channel, qui reste là, qui est réutilisé, et un jour quelqu’un d’externe ou un ancien prestataire a encore accès à un bout de ton système.

Le bon compromis, c’est de limiter le périmètre. Une session dédiée « support », dans un environnement de dev/staging, avec le moins de secrets possible, et des commandes qui ne touchent pas à des ressources critiques. Et si tu veux absolument regarder de la prod, tu le fais comme tu ferais un accès prod normal : bastion, journalisation, droits minimaux, et idéalement un compte/service non admin.

Exemple concret : attacher et regarder une session distante

Je te montre l’idée générale, parce que ça aide à se projeter. Zellij 0.44 met en avant le fait de pouvoir attacher une session distante avec une URL HTTPS, et d’avoir un mode watch (lecture seule) avec des tokens dédiés.

# Attacher une session distante via HTTPS (interaction complète selon les droits du token)
zellij attach https://exemple.tld/ma-session

# Se connecter en mode watch (lecture seule)
zellij watch https://exemple.tld/ma-session

Dans la vraie vie, tu vas vite te poser deux questions. Qui génère le lien ou le token, et où est-ce que ça vit. Je préfère que ce soit traité comme un accès temporaire, pas comme un « endpoint pratique » qu’on laisse ouvert parce que c’est cool.

zellij run : l’automatisation CLI qui évite le bricolage

L’autre morceau intéressant dans 0.44, c’est le côté automatisation avec zellij run. Si tu utilises Zellij comme un vrai environnement de travail (panes, onglets, routines), tu as forcément des actions répétitives : lancer un serveur, lancer un worker, suivre des logs, exécuter une commande de build, ouvrir un REPL, etc.

Ce que j’aime avec une commande dédiée, c’est que tu peux sortir du « je clique/je split à la main » et transformer ça en quelque chose de reproductible. Typiquement, tu peux intégrer Zellij dans un script d’onboarding, ou te faire une commande « incident » qui ouvre les bons logs et les bons dashboards terminal, sans demander à tout le monde de connaître le même rituel.

# Exemple d’idée : lancer une commande via Zellij pour standardiser un workflow
zellij run -- npm run dev

Je reste volontairement simple ici, parce que l’important n’est pas la syntaxe exacte au caractère près. L’important, c’est l’intention : si tu standardises tes routines, tu diminues les erreurs humaines. Et ça, en support et en ops, c’est souvent ce qui fait la différence entre un incident propre et un moment de panique.

Les pièges que je vois venir (et qui vont faire détester la feature)

Le piège n°1, c’est d’utiliser le partage de session comme un substitut à la gestion d’accès. « Pas besoin de compte, je t’envoie un lien. » Mauvaise pente. À partir du moment où tu as une feature qui donne accès à un contexte d’exécution, tu dois la raccrocher à une logique de droits, de traçabilité, et de révocation. Sinon tu crées une porte de côté que personne ne maîtrise.

Le piège n°2, c’est le « watch » utilisé comme excuse pour ne pas faire de hygiene. Même en lecture seule, afficher des secrets à l’écran reste une fuite. Et tu serais surpris de la quantité de secrets qui transitent dans un terminal : exports, .env ouverts, outputs d’outils cloud, tokens copiés/collés, etc. Si ton équipe a l’habitude de « cat .env » ou de faire apparaître des clés en clair, le remote watch va amplifier ce problème.

Le piège n°3, c’est d’activer ça sur le mauvais périmètre réseau. Exposer une session sur un serveur accessible depuis Internet « parce que c’est plus simple », c’est une très mauvaise idée si tu ne sais pas exactement ce que tu fais. Le bon réflexe, c’est réseau privé, VPN, ou à minima un contrôle d’accès fort, et une durée de vie courte.

Avant de le proposer en équipe : les garde-fous qui comptent vraiment

Si je devais résumer ma posture : oui, c’est une super feature, mais je la traiterais comme un outil de prod. Pas comme un gadget. Donc je mettrais du cadre.

Le cadre le plus utile, c’est d’abord la séparation des contextes. Une session « partagée » devrait vivre dans un environnement où l’affichage de données sensibles est déjà limité par design. Ça peut être un container dédié, une VM de support, un shell avec des credentials restreints, ou un compte sans privilèges. Tout ce qui évite le classique « je suis root sur une box qui a accès à tout ».

Ensuite, je définirais une règle simple côté équipe : le mode watch par défaut. On ne donne le contrôle interactif qu’en cas de besoin réel, à une personne identifiée, pendant une durée courte. C’est exactement comme le partage d’écran : tu ne donnes pas le contrôle clavier à tout le monde « au cas où ».

Enfin, j’insisterais sur l’hygiène terminal. Pas en mode police, en mode pragmatique : si tu tapes des secrets dans ton shell, si ton historique les conserve, si tu affiches des fichiers sensibles, tu peux le faire sans remote sessions… mais tu vas le regretter deux fois plus vite quand tu partages. Le partage rend visible ce qui était « juste moche ». Et c’est plutôt une bonne chose, parce que ça force à corriger les mauvaises habitudes.

Conclusion : le terminal collaboratif, oui… mais avec des limites assumées

Zellij 0.44 met le doigt sur un truc vrai : on passe encore énormément de temps dans le terminal, et on collabore souvent comme en 2008. Pouvoir attacher une session en HTTPS, inviter quelqu’un à observer en lecture seule, automatiser des workflows, ça fait gagner du temps immédiatement.

Le revers est simple : tu n’es plus « juste » dans ton terminal local. Tu es dans une session partageable, donc tu dois être un peu plus strict sur le périmètre, les tokens, et ce qui s’affiche. Si tu fais ça proprement, tu as un outil très cool. Si tu le fais à l’arrache, tu ajoutes une nouvelle porte d’entrée, et ce n’est pas Zellij le problème.

Sources

Cet article vous a plu ?

Commentaires

Laisser un commentaire

Entre 10 et 2000 caractères

Les commentaires sont modérés avant publication.

Aucun commentaire pour le moment.

Soyez le premier à donner votre avis !