Recherche de site Web

GoTTY - Partagez votre terminal Linux (TTY) en tant qu'application Web


GoTTY est un outil de ligne de commande simple basé sur GoLang qui vous permet de partager votre terminal (TTY) en tant qu'application Web. Il transforme les outils de ligne de commande en applications Web.

Il utilise l'émulateur de terminal de Chrome OS (hterm) pour exécuter un terminal basé sur JavaScript sur un navigateur Web. Et surtout, GoTTY exécute un serveur de socket Web qui transfère essentiellement la sortie du TTY aux clients et reçoit les entrées des clients (c'est-à-dire si l'entrée des clients est autorisée) et les transmet au ATS.

Lire aussi : Téléconsole – Partagez votre terminal Linux avec vos amis

Son architecture (idée hterm + web socket) a été inspirée du programme Wetty qui active le terminal via HTTP et HTTPS.

Conditions préalables:

Vous devez avoir l’environnement GoLang (Go Programming Language) installé sous Linux pour exécuter GoTTY.

Comment installer GoTTY sur les systèmes Linux

Si vous disposez déjà d'un environnement GoLang fonctionnel, exécutez la commande go get ci-dessous pour l'installer :

go get github.com/yudai/gotty

La commande ci-dessus installera le binaire GoTTY dans votre variable d'environnement GOBIN, essayez de vérifier si c'est le cas :

ls $GOPATH/bin/

Comment utiliser GoTTY sous Linux

Pour l'exécuter, vous pouvez utiliser la variable d'environnement GOBIN et la fonctionnalité d'auto-complétion des commandes comme suit :

$GOBIN/gotty

Sinon, exécutez GoTTY ou tout autre programme Go sans saisir le chemin complet du binaire, ajoutez votre variable GOBIN à PATH dans le fichier ~/.profile à l'aide de la commande export ci-dessous. :

export PATH="$PATH:$GOBIN"

Enregistrez le fichier et fermez-le. Sourcez ensuite le fichier pour effectuer les modifications ci-dessus :

source ~/.profile

La syntaxe générale pour exécuter les commandes GoTTY est la suivante :

Usage: gotty [options] <Linux command here> [<arguments...>]

Exécutez maintenant GoTTY avec n'importe quelle commande telle que la commande df pour afficher l'espace et l'utilisation des partitions du disque système à partir du navigateur Web :

gotty df -h

GoTTY démarrera un serveur Web sur le port 8080 par défaut. Ouvrez ensuite l'URL : http://127.0.0.1:8080/ sur votre navigateur web et vous verrez la commande en cours d'exécution comme si elle s'exécutait sur votre terminal :

Comment personnaliser GoTTY sous Linux

Vous pouvez modifier les options par défaut et votre terminal (hterm) dans le fichier de profil ~/.gotty, il chargera ce fichier par défaut s'il existe.

Il s'agit du fichier de personnalisation principal lu par les commandes gotty, alors créez-le comme suit :

touch ~/.gotty

Et définissez vos propres valeurs valides pour les options de configuration (retrouvez toutes les options de configuration ici) pour personnaliser GoTTY par exemple :

// Listen at port 9000 by default
port = "9000"

// Enable TSL/SSL by default
enable_tls = true

// hterm preferences
// Smaller font and a little bit bluer background color
preferences {
    font_size = 5,
    background_color = "rgb(16, 16, 32)"
}

Vous pouvez définir votre propre fichier index.html à l'aide de l'option --index depuis la ligne de commande :

gotty --index /path/to/index.html uptime

Comment utiliser les fonctionnalités de sécurité dans GoTTY

Étant donné que GoTTY n'offre pas de sécurité fiable par défaut, vous devez utiliser manuellement certaines fonctionnalités de sécurité expliquées ci-dessous.

Autoriser les clients à exécuter des commandes/taper une entrée dans le terminal

Notez que, par défaut, GoTTY ne permet pas aux clients de saisir des données dans le TTY, il permet uniquement le redimensionnement de la fenêtre.

Cependant, vous pouvez utiliser l'option -w ou --permit-write pour permettre aux clients d'écrire sur le TTY, ce qui n'est pas recommandé en raison des menaces de sécurité sur le serveur.

La commande suivante utilisera l'éditeur de ligne de commande vi pour ouvrir le fichier fossmint.txt pour le modifier dans le navigateur Web :

gotty -w vi fossmint.txt

Vous trouverez ci-dessous l'interface vi vue depuis le navigateur Web (utilisez les commandes vi ici comme d'habitude) :

Utilisez GoTTY avec l'authentification de base (nom d'utilisateur et mot de passe)

Essayez d'activer un mécanisme d'authentification de base, dans lequel les clients devront saisir le nom d'utilisateur et le mot de passe spécifiés pour se connecter au serveur GoTTY.

La commande ci-dessous restreindra l'accès client à l'aide de l'option -c pour demander aux utilisateurs les informations d'identification spécifiées (nom d'utilisateur : test et mot de passe : @67890) :

gotty -w -p "9000" -c "test:@67890" glances

Gotty Générer une URL aléatoire

Une autre façon de restreindre l'accès au serveur consiste à utiliser l'option -r. Ici, GoTTY générera une URL aléatoire afin que seuls les utilisateurs connaissant l'URL puissent accéder au serveur.

Utilisez également l'option –title-format « GoTTY – {{ .Command }} ({{ .Hostname }}) » pour définir le titre de l'interface du navigateur Web et la commande looks est utilisée pour afficher les statistiques de surveillance du système. :

gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Ce qui suit est le résultat de la commande ci-dessus, vu depuis l'interface du navigateur Web :

Utiliser GoTTY avec SSL/TLS

Parce que par défaut, toutes les connexions entre le serveur et les clients ne sont pas cryptées, lorsque vous envoyez des informations secrètes via GoTTY telles que les informations d'identification de l'utilisateur ou toute autre information, vous devez utiliser le -t ou - Option -tls qui active TLS/SSL sur la session :

GoTTY lira par défaut le fichier de certificat ~/.gotty.crt et le fichier de clé ~/.gotty.key. Commencez donc également par créer une certification auto-signée. comme fichier de clé à l'aide de la commande openssl ci-dessous (répondez à la question posée afin de générer le certificat et les fichiers de clé) :

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt

Utilisez ensuite GoTTY de manière sécurisée avec SSL/TLS activé comme suit :

gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Partagez votre terminal avec plusieurs clients

Vous pouvez utiliser des multiplexeurs de terminaux pour partager un seul processus avec plusieurs clients, la commande suivante démarrera une nouvelle session tmux nommée gotty avec la commande looks (assurez-vous que tmux est installé) :

gotty tmux new -A -s gotty glances 

Pour lire un autre fichier de configuration, utilisez l'option –config « /path/to/file » comme ceci :

gotty -tr --config "~/gotty_new_config" --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Pour afficher la version GoTTY, exécutez la commande :

gotty -v 

Visitez le référentiel GoTTY GitHub pour trouver plus d'exemples d'utilisation : https://github.com/yudai/gotty

C'est tout! L'avez-vous essayé? Comment trouvez-vous GoTTY ? Partagez vos réflexions avec nous via le formulaire de commentaires ci-dessous.