
Avez-vous déjà eu besoin de démontrer l’activité de votre terminal en temps réel, que ce soit pour résoudre un problème de serveur avec un collègue ou pour présenter une commande complexe à un ami ? Plutôt que de faire des captures d’écran ou d’enregistrer votre écran, imaginez la commodité de partager votre session de terminal en direct via un simple lien web. Cette méthode améliore non seulement la collaboration, mais offre également une visibilité en temps réel sur vos activités.
Linux propose différentes méthodes de partage de terminaux, notamment des options traditionnelles comme SSH, des outils comme tmux et screen, ainsi que des utilitaires d’enregistrement d’écran comme asciinema. Bien que ces options puissent être efficaces, elles impliquent souvent une complexité inutile et des dépendances supplémentaires qui peuvent entraver votre flux de travail.
Entrez l’ outil de ligne de commande ttyd.ttyd simplifie le partage de votre terminal en le transformant en une interface Web, permettant à toute personne disposant du lien d’accéder et même d’interagir avec votre session sans avoir besoin d’installer de logiciel supplémentaire ou de configurer des paramètres.
Principales caractéristiques du ttyd
- Utilise Libwebsockets et libuv pour des performances exceptionnelles.
- Utilise WebSockets pour une expérience transparente, même avec une connectivité limitée.
- Prend en charge le ZMODEM graphique pour les transferts de fichiers, permettant aux utilisateurs de faire glisser et déposer des fichiers directement via le navigateur Web.
- Inclut le cryptage SSL/TLS pour garantir des sessions sécurisées, avec des options d’authentification.
- Fonctionne sur n’importe quel port désigné et offre une compatibilité pour le déploiement sur des appareils tels que Raspberry Pi.
- Fonctionnalités intégrées de copier/coller entre le terminal et l’interface Web.
- Possibilité de restreindre les connexions simultanées pour la gestion des sessions.
- Ouvre automatiquement les sessions dans le navigateur Web par défaut.
- Permet des restrictions d’accès à un seul client pour une sécurité renforcée.
Comment installer ttyd sous Linux
Pour les utilisateurs de Debian ou d’Ubuntu, ttyd peut être absent des dépôts par défaut. Cependant, l’installation reste simple grâce à des méthodes alternatives, comme la compilation à partir des sources.
Commencez par vous assurer que votre système est entièrement mis à jour :
sudo apt update && sudo apt upgrade -y
Ensuite, installez les dépendances nécessaires à la compilation de ttyd :
sudo apt install -y build-essential cmake git libjson-c-dev libwebsockets-dev

Clonez le référentiel ttyd depuis GitHub et compilez-le à l’aide des commandes suivantes :
git clone https://github.com/tsl0922/ttyd.git cd ttyd mkdir build && cd build cmake..make sudo make install
C’est tout ! Vous avez maintenant installé ttyd sur votre système.
Pour les autres distributions Linux, vous pouvez suivre des instructions de compilation similaires ou télécharger un binaire précompilé depuis la page des versions GitHub de ttyd. Pour le télécharger rapidement, utilisez la commande wget suivante :
wget https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64
Rendre le binaire téléchargé exécutable :
chmod +x ttyd.x86_64
Cette méthode constitue l’un des moyens les plus rapides de rendre ttyd opérationnel sur différentes distributions Linux. Vous pouvez également utiliser un gestionnaire de paquets universel tel que Snap pour installer ttyd :
sudo snap install ttyd --classic
Une fois ttyd installé, vérifiez votre installation en entrant ttyd --version
.
Transformer votre terminal en une interface Web partageable
Le moyen le plus simple d’exploiter ttyd est de partager votre session shell par défaut. Exécutez la commande suivante :
ttyd bash
Cette commande initialise un serveur web sur le port 7681 par défaut. Pour y accéder, ouvrez simplement votre navigateur web et accédez à http://localhost:7681 ou http://your-ip-address:7681.

Votre terminal devrait maintenant être visible sur une page web, et tous les utilisateurs du réseau local peuvent y accéder en remplaçant « localhost » par l’adresse IP de votre machine. Vous pouvez trouver votre adresse IP en utilisant ip addr show
ou hostname -I
pour la partager avec d’autres utilisateurs.
Au-delà du simple partage d’un shell, ttyd permet d’exposer d’autres applications en ligne de commande dans le navigateur. Par exemple, la commande ttyd htop
lancera directement le htop
gestionnaire de processus, tandis que ttyd vim
ou ttyd top
partagera ces outils respectifs.

Si vous souhaitez personnaliser le numéro de port de votre session, vous pouvez facilement le faire en utilisant l’ -p
indicateur :
ttyd -p 8080 bash
Cela rend votre terminal disponible sur le port 8080 au lieu du port 7681 par défaut.
Pour empêcher tout accès non autorisé, ttyd prend également en charge l’authentification via l’ -c
option :
ttyd -c username:password bash

Cette configuration nécessite une authentification HTTP de base, garantissant que toute personne tentant d’accéder à votre terminal devra saisir les identifiants requis. Bien qu’une authentification plus sophistiquée soit préférable pour les environnements de production, cette méthode est efficace pour les démonstrations informelles ou les réseaux de confiance.
De plus, vous pouvez créer une session en lecture seule, interdisant toute saisie des utilisateurs :
ttyd -R bash
Cela peut être particulièrement avantageux pour les présentations ou les environnements pédagogiques où vous souhaitez garder le contrôle.À l’inverse, utilisez le -W
drapeau pour une session interactive et accessible en écriture :
ttyd -W bash
Partage sécurisé sur Internet
Lorsque vous partagez votre terminal sur Internet, la mise en œuvre du chiffrement est cruciale.ttyd prend en charge HTTPS grâce à votre propre certificat SSL. Si vous ne possédez pas de certificat SSL, vous pouvez en créer un auto-signé avec OpenSSL à des fins de test. Pour une utilisation en production, il est toutefois conseillé d’utiliser une autorité de certification de confiance telle que Let’s Encrypt.
Bien que ttyd soit accessible par défaut uniquement sur votre réseau local, il est souvent nécessaire d’étendre cet accès en externe. Plusieurs approches permettent d’y parvenir en toute sécurité. L’une des méthodes les plus simples consiste à intégrer ttyd à un service de tunneling comme Tailscale ou Cloudflare Tunnel, qui rend votre port local accessible en toute sécurité sur Internet via une URL publique temporaire. Vous pouvez également héberger ttyd sur un serveur VPS ou cloud avec un nom de domaine, permettant ainsi un accès HTTPS permanent.
Pour des configurations plus avancées, vous pouvez lier ttyd uniquement à localhost et le placer derrière un proxy inverse comme Nginx ou Caddy. Cette configuration permet de gérer la terminaison SSL, l’authentification et le contrôle d’accès détaillé.
Conclusion
Avec ttyd, le processus complexe de partage de terminal se transforme en une tâche simple, semblable au partage d’un lien hypertexte.
Laisser un commentaire