GNU/Linux >> Tutoriels Linux >  >> Linux

Partager et contrôler les terminaux en temps réel depuis un navigateur Web

Ce guide explique ce qu'est TermPair, comment il fonctionne et comment partager et contrôler des terminaux en temps réel à partir d'un navigateur Web avec un cryptage de bout en bout à l'aide de TermPair sous Linux.

Qu'est-ce que TermPair ?

TermPaire est un service Web qui permet à quiconque de visualiser et de contrôler ses sessions Terminal en temps réel à partir d'un navigateur Web. En termes simples, il permet aux utilisateurs de collaborer, de visualiser et de partager, le tout en temps réel.

À l'aide de TermPair, vous pouvez rapidement, facilement et en toute sécurité partager votre terminal sur le Web et y accéder ainsi que le contrôler à partir de n'importe quel appareil connecté à Internet.

TermPair utilise AES-GCM 128 bit cryptage de bout en bout, de sorte que toutes les données du terminal sont transférées en toute sécurité entre le client et le navigateur Web. Ni le serveur TermPair ni aucun tiers ne peuvent lire les données transmises.

Son utilisation est entièrement gratuite et le code source de TermPair est accessible au public sur GitHub. TermPair est écrit à l'aide de Python et de technologies Web telles que CSS, HTML et JavaScript.

Comment fonctionne TermPair ?

TermPair comprend les composants suivants :

  • Serveur TermPair,
  • Client de terminal Unix (votre système),
  • Navigateur Web.

La transmission des données s'effectue entre le client Terminal et le navigateur comme décrit ci-dessous :

1. Tout d'abord, nous démarrons le serveur TermPair avec termpair serve commande de notre système. Le serveur TermPair agit comme un routeur entre votre terminal et votre navigateur. Il envoie des données cryptées entre les clients du terminal et les navigateurs connectés.

2. Le serveur TermPair écoute les connexions websocket termpair du client de terminal Unix et maintient un mappage vers tous les navigateurs connectés.

3. Dans le terminal client Unix, un pseudoterminal (pty ) le processus est démarré avec un nouveau shell et une clé de cryptage est générée dans le système de l'utilisateur.

4. Une fois la clé de chiffrement générée, la nouvelle session client est enregistrée auprès du serveur TermPair avec un identifiant de session unique.

5. Ensuite, tous les pty IO est crypté à l'aide d'une clé secrète, de sorte que le serveur TermPair ne peut pas le lire. Après avoir crypté les données du terminal, elles sont partagées via Websocket avec le serveur TermPair pour un routage ultérieur.

6. Le serveur TermPair reçoit et envoie les données cryptées du terminal aux navigateurs via Websocket. Veuillez noter que le serveur TermPair ne reçoit pas la clé secrète. Il ne reçoit que les données cryptées.

7. Le navigateur obtient la clé de cryptage secrète via une partie de l'URL. Le hachage d'URL contenant la clé secrète ne sera pas exposé au serveur TermPair.

8. Lorsque les navigateurs ont reçu les données chiffrées, il les déchiffre à l'aide de la clé secrète et affiche enfin la sortie du terminal dans le navigateur.

9. De même, lorsque les données sont envoyées du navigateur vers le terminal, elles sont cryptées à l'aide d'une clé secrète, et transmises au serveur TermPair.

10. Le serveur reçoit les données cryptées et renvoie les données au Terminal. Les données sont déchiffrées à l'aide de la clé secrète dans le terminal et finalement affichées dans la sortie standard.

C'est ainsi que le transfert de données se produit entre le client Terminal, le serveur TermPair et le navigateur Web. Toutes les données sont cryptées et transmises en toute sécurité d'un point à un autre.

TermPair fonctionne sur tous les shells, par exemple bash , zsh et fonctionne avec tous les programmes tels que vim , emacs , tmux , ssh etc.

Mises en garde

TermPair est bon pour ceux qui veulent collaborer en temps réel. Il a également quelques failles de sécurité. Si vous ne faites pas attention, cela pourrait être une erreur catastrophique.

Vous ne devriez jamais essayer cela dans un lieu public. Quelqu'un peut voir l'URL partageable et essayer de prendre le contrôle de votre système. Plus important encore, vous devez savoir ce que quelqu'un peut faire si vous lui permettez de contrôler votre Terminal.

Toute personne disposant de l'ID partageable TermPair (URL) peut effectuer les opérations suivantes si elle connaît le sudo le mot de passe. Si vous avez démarré la session avec root utilisateur, ce serait très dangereux !

  • Ils peuvent voir chaque caractère généré par le terminal.
  • Exécutez n'importe quelle commande,
  • Accéder à l'intégralité du système de fichiers,
  • Afficher toutes les données de votre système,
  • Supprimer toutes les données,
  • Redémarrer ou arrêter le système,
  • Installer un logiciel malveillant ou un virus,
  • et n'importe quoi, tout !

Si vous êtes dans un réseau fermé et de confiance, ou si vous voulez le tester sur votre système local, allez-y. Cela ne fera aucun mal.

Installer TermPair sous Linux

Pour faire fonctionner TermPair, vous devez avoir un système Linux avec Python 3.6+ installé.

Installez TermPair sous Linux en utilisant pipx ou pip gestionnaires de paquets comme ci-dessous :

$ pipx install termpair

Ou,

$ pip install termpair

Vous pouvez également exécuter TermPair sans l'installer :

Servir :

$ pipx run termpair serve

Alors partagez :

$ pipx run termpair share --open-browser

Partagez et contrôlez les terminaux en temps réel depuis un navigateur Web à l'aide de TermPair

1. Démarrez le serveur TermPair à l'aide de la commande :

$ termpair serve

Exemple de résultat :

 INFO:     Started server process [19084]
 INFO:     Waiting for application startup.
 INFO:     Application startup complete.
 INFO:     Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)

Cela devrait être en cours d'exécution avant que vous ne commenciez à partager votre terminal.

2. Ouvrez une nouvelle fenêtre ou un nouvel onglet Terminal et exécutez la commande suivante pour partager votre Terminal :

$ termpair share --host "http://localhost/" --port 8000

Exemple de résultat :

 Connection established with end-to-end encryption 🔒
 Sharing '/bin/bash' at
 http://localhost:8000/?terminal_id=0a8cxxxxxxxxxx1234x*&
 Type 'exit' or close terminal to stop sharing.

Un ID de session TermPair unique sera généré comme indiqué ci-dessus.

3. Ouvrez votre navigateur Web et copiez/collez l'ID de session affiché dans la barre d'adresse.

Maintenant, tout ce que vous tapez dans le terminal apparaîtra dans le navigateur et vice versa. Signification - vous pouvez taper les commandes dans le navigateur ou le terminal. L'entrée et la sortie apparaîtront dans les deux fenêtres. Cela donne un contrôle total à toute personne disposant de l'ID de session.

Pour quitter le partage de terminal, fermez simplement le terminal ou tapez exit et appuyez sur ENTER . Après avoir arrêté le partage de terminal, accédez au terminal où le TermPair est démarré et appuyez sur CTRL+C pour le quitter.

4. Si vous ne voulez pas donner le contrôle total, vous pouvez utiliser --no-browser-control , ou -n option.

Assurez-vous que le serveur TermPair est démarré et démarrez le partage de terminal en mode lecture seule comme ci-dessous.

$ termpair serve
$ termpair share --host "http://localhost/" --port 8000 -n

En mode lecture seule, ils ne peuvent exécuter aucune commande dans le navigateur, mais uniquement afficher tout ce qui est imprimé dans le terminal. Vous pouvez décider qui peut et ne peut pas contrôler votre Terminal.

5. Par défaut, le serveur TermPair fonctionnera sur le port 8000 . Vous pouvez également choisir n'importe quel autre port de votre choix. Par exemple, la commande suivante exécute le serveur TermPair sur le port 8080 .

$ termpair share --host "http://localhost/" --port 8080

6. Si vous souhaitez ouvrir un navigateur Web automatiquement après avoir commencé le partage, utilisez --open-browser , ou -b option.

$ termpair share --host "http://localhost/" --port 8000 -b

N'oubliez pas que le serveur termpair doit être en cours d'exécution avant d'utiliser cette commande.

7. Pour afficher la section d'aide, exécutez :

$ termpair serve --help
$ termpair share --help

Conclusion

TermPair nous aide à partager vos sessions Terminal avec n'importe qui sans trop de tracas. Vous pouvez l'utiliser lorsque vous avez besoin d'aide avec votre code. Vous pouvez partager le terminal avec votre ami ou collègue digne de confiance. Ils peuvent visualiser et accéder instantanément à votre session de terminal depuis n'importe où et vous aider de toutes les manières possibles.

Comme indiqué déjà, vous devez également être prudent lorsque vous partagez votre terminal. Si vous ne comprenez pas comment cela fonctionne, c'est probablement une bonne idée d'éviter d'utiliser cet outil.


Linux
  1. Contrôlez l'heure et la date de votre ordinateur avec systemd

  2. Comment rechercher sur le Web à partir d'un terminal sous Linux

  3. Comment effacer le cache du navigateur Web à partir de la ligne de commande sous Linux

  4. Popcorn Time - Diffusez des films et des émissions de télévision instantanément à partir de Torrents

  5. Qu'est-ce que la dispersion NTP et comment la contrôler ?

Contrôler la luminosité de l'écran à partir du terminal Ubuntu

Comment ouvrir une URL dans le navigateur Web à partir du terminal Linux

Comment installer TermPair pour partager et contrôler les terminaux en temps réel à partir du navigateur Web

Contrôlez l'utilisation de la RAM et du CPU par Kodi en temps réel

Utilisation de Cockpit pour surveiller et gérer graphiquement plusieurs serveurs Linux à partir d'un navigateur Web

Découvrez CyberPanel et installez-le pour contrôler votre hébergeur