Turn Your Terminal Into Web Page With Ttyd Feature Image

Table des matières

Vous êtes-vous déjà retrouvé dans une situation où vous deviez montrer à quelqu’un exactement ce que vous faites dans votre terminal? Peut-être que vous déboguez un problème de serveur avec un collègue ou démontrez une séquence de commandes complexe à un ami. Bien sûr, vous pouvez prendre des captures d’écran ou enregistrer votre écran, mais ne serait-il pas incroyable que vous puissiez simplement partager votre session de terminal en direct via un simple lien Web? Cette approche facilite la collaboration et offre une visibilité en temps réel dans ce qui se passe sur votre machine.

Linux vous donne déjà quelques façons de partager les terminaux. Par exemple, vous avez des méthodes traditionnelles comme SSH, des outils comme TMUX et Screen, et des outils d’enregistrement comme Asciinema. Bien que ces méthodes fonctionnent dans certains cas, elles ajoutent souvent des étapes ou des dépendances supplémentaires qui vous ralentissent.

C’est là que l’outil de ligne de commande TTYD entre en jeu. Au lieu de forcer les autres à installer un logiciel ou à jouer avec des configurations, TTYD transforme votre terminal en page Web. Maintenant, toute personne ayant le lien peut ouvrir son navigateur et regarder ou même interagir avec votre session.

Que peut faire TTYD?

  • TTYD Levier Libwebwebsockts et Libuv pour des performances fulgurantes.
  • Il utilise des lignes Web sous le capot, ce qui maintient l’expérience en douceur et réactive même sur des connexions plus faibles.
  • Prend en charge le ZMODEM graphique pour les transferts de fichiers et s’intègre à LRZSZ pour faire glisser et supprimer des fichiers dans le navigateur.
  • Incluez le cryptage SSL / TLS pour la sécurité, le support d’authentification.
  • TTYD peut facilement fonctionner sur n’importe quel port que vous aimez, et avec une compatibilité transversale, vous pouvez même l’exécuter sur un Raspberry Pi.
  • Fournir une prise en charge de copie / coller intégrée entre le navigateur et le terminal.
  • Peut limiter le nombre maximum de connexions simultanées.
  • Sessions auto-ouvertes dans votre navigateur.
  • Restreindre l’accès à un seul client à la fois.

Installez TTYD sur Linux

Si vous êtes sur Debian ou Ubuntu, TTYD peut ne pas être disponible dans les référentiels par défaut. Mais ne vous inquiétez pas, vous pouvez toujours l’installer facilement en utilisant d’autres options, comme la construction de Source.

Tout d’abord, assurez-vous que votre système est à jour:

sudo apt update && sudo apt upgrade -y

Installez les dépendances requises pour la construction de TTYD:

sudo apt install -y build-essential cmake git libjson-c-dev libwebsockets-dev

Clone le code source TTYD de GitHub et le construire avec ces commandes:

git clone https://github.com/tsl0922/ttyd.git
cd ttyd
mkdir build && cd build
cmake ..
make
sudo make install

Et c’est tout. Vous avez maintenant installé TTYD.

Pour d’autres distributions, vous pouvez utiliser la même option de construction manuelle. Alternativement, vous pouvez saisir un binaire précompilé de la page GitHub Release de TTYD pour votre architecture (comme AMD64 pour la plupart). Ou vous pouvez le télécharger avec cette commande wget:

wget https://github.com/tsl0922/ttyd/releases/download/1.7.7/ttyd.x86_64

Faites-le exécutable:

chmod +x ttyd.x86_64

C’est probablement le moyen le plus rapide de faire fonctionner TTYD sur n’importe quelle distribution Linux. Vous pouvez également utiliser un gestionnaire de packages universel comme Snap pour installer TTYD:

sudo snap install ttyd --classic

Une fois que vous avez installé TTYD en utilisant l’une de ces méthodes, tapez ttyd --version pour confirmer qu’il est installé correctement.

Transformez votre terminal en une page Web partageable

L’utilisation la plus élémentaire de TTYD consiste à partager votre session de shell par défaut. Pour ce faire, courez simplement ttyd suivi de la commande que vous souhaitez partager. Dans ce cas, c’est bash (ou zsh, poisson, etc.):

ttyd bash

Cette commande lance un serveur Web sur le port 7681 par défaut. Pour vérifier, ouvrez votre navigateur et visitez http: // localhost: 7681 ou http: // your-ip-address: 7681.

Page Web partageable créée à l'aide de TTYD

Vous verrez maintenant votre terminal s’exécuter dans une page Web. De plus, toute personne sur votre réseau peut accéder à ce terminal en remplaçant LocalHost par l’adresse IP de votre machine. Vous pouvez trouver votre IP avec ip addr show ou hostname -Ipuis partagez-le avec les autres.

Vous n’êtes pas non plus limité au partage d’un shell. Tout programme de ligne de commande peut être exposé dans le navigateur. Par exemple, courir ttyd htop se lancera directement dans le htop Gestionnaire de processus, tandis que ttyd vim ou ttyd top Partagera ces outils à la place.

OUVERTISSE D'OUTOL DE LIGNE DE COMMANDE TOP sur la page Web

Si vous ne souhaitez pas utiliser le port par défaut, vous pouvez également spécifier le vôtre. Avec -p drapeau:

ttyd -p 8080 bash

Maintenant, votre terminal est disponible sur le port 8080 au lieu du 7681 par défaut.

L’exécution d’un terminal ouvert accessible à quiconque n’est pas une option sage, donc TTYD propose des options d’authentification avec le -c drapeau:

ttyd -c username:password bash
Enregistrement de l'option pour la session de terminal à l'aide de TTYD

Cela crée une invite d’authentification HTTP de base. Quiconque essaie d’accéder à votre terminal doit saisir les informations d’identification spécifiées. Pour les environnements de production, vous voudrez quelque chose de plus robuste, mais pour des démonstrations rapides ou des réseaux de confiance, cela fonctionne parfaitement.

Vous pouvez également rendre votre session en lecture seule, empêchant les entrées du navigateur:

ttyd -R bash

Ceci est utile pour les ateliers ou les présentations où vous souhaitez maintenir le contrôle. D’un autre côté, utilisez -W Si vous voulez explicitement une session écrivative et interactive.

ttyd -W bash

Partage sur le réseau public

Lors du partage sur Internet, le cryptage devient essentiel. TTYD vous permet d’activer HTTPS en utilisant votre propre certificat SSL. Si vous n’avez pas déjà de certificats, vous pouvez créer des certificats auto-signés pour tester avec OpenSSL, bien que pour la production, il est préférable d’utiliser un fournisseur de confiance comme Let’s Encrypt.

Par défaut, TTYD n’est accessible que sur votre réseau local, mais parfois vous voudrez le partager avec quelqu’un en dehors de votre réseau local. Vous pouvez y parvenir en toute sécurité de plusieurs manières. L’approche la plus simple consiste à associer TTYD à un service de tunneling tel que TailScale ou CloudFlare Tunnel, qui expose en toute sécurité votre port local à Internet via une URL publique temporaire. Alternativement, vous pouvez exécuter TTYD sur un serveur VPS ou Cloud avec un nom de domaine, ce qui rend votre terminal accessible en permanence via HTTPS.

Pour des configurations plus avancées, vous pouvez lier TTYD à LocalHost uniquement et la placer derrière un proxy inversé comme Nginx ou Caddy, qui peut gérer la terminaison SSL, l’authentification et le contrôle d’accès à grains fins.

Réflexions finales

TTYD prend la tâche compliquée du partage du terminal et le rend aussi simple que de partager un hyperlien. De plus, si vous souhaitez apprendre à partager votre session TMUX dans Linux, consultez ce guide.

Partager :
Facebook
Twitter
LinkedIn

Gentil Geek

Passionné d'informatique depuis ma plus tendre enfance aujourd'hui j'en ai fait mon métier. A vos côtés pour simplifier votre utilisation de l'informatique et vous permettre de gagner en compétences.

Poster le commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *