Recherche de site Web

Comment accéder au terminal serveur Linux dans un navigateur Web à l'aide de l'outil 'Wetty (Web + tty)'


En tant qu'administrateur système, vous vous connectez probablement à des serveurs distants à l'aide d'un programme tel que Terminal GNOME (ou similaire) si vous utilisez un ordinateur de bureau Linux, ou d'un client SSH tel que Putty si vous disposez d'un Machine Windows, pendant que vous effectuez d'autres tâches comme naviguer sur le Web ou consulter vos e-mails.

Ne serait-il pas fantastique s'il existait un moyen d'accéder à un serveur Linux distant directement depuis le navigateur Web ? Heureusement pour nous tous, il existe un outil appelé Wetty (Web + tty) qui nous permet de faire exactement cela, sans avoir besoin de changer. programmes et le tout à partir de la même fenêtre de navigateur Web.

Installer Wetty sous Linux

Wetty est disponible depuis le dépôt GitHub de son développeur. Pour cette raison, quelle que soit la distribution, vous utilisez certaines dépendances qui doivent d'abord être installées manuellement avant de cloner le référentiel localement et d'installer le programme.

Dans les distributions basées sur RHEL, telles que CentOS, Rocky Linux et AlmaLinux, vous devez installer NodeJS et le référentiel EPEL comme indiqué :


yum groupinstall 'Development Tools'
curl -fsSL https://rpm.nodesource.com/setup_17.x | bash -
yum update 
yum install epel-release git nodejs npm

Dans Debian et ses dérivés, la version de NodeJS disponible dans les dépôts de la distribution est plus ancienne que la version minimale requise pour installer Wetty, vous devez donc l'installer depuis le NodeJS Dépôt de développeurs GitHub :


apt install curl build-essential
curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -
apt update && apt install -y git nodejs npm

Après avoir installé ces dépendances, clonez le dépôt GitHub :

git clone https://github.com/krishnasrinivas/wetty

Remplacez le répertoire de travail par wetty, comme indiqué dans le message ci-dessus :

cd wetty

puis installez Wetty en exécutant :

npm install

Si vous recevez des messages d'erreur pendant le processus d'installation, veuillez y remédier avant de continuer. Dans mon cas, la nécessité d'une version plus récente de NodeJS dans Debian était un problème qui devait être résolu avant d'exécuter avec succès l'installation de npm.

Démarrage de Wetty et accès au terminal Linux à partir d'un navigateur Web

À ce stade, vous pouvez démarrer l'interface Web sur le port local 8080 pour Wetty en exécutant (cela suppose que votre répertoire de travail actuel est /wetty) :

node app.js -p 8080

Comme vous pouvez le voir sur l'image ci-dessous :

Mais rendez-vous service et NE PAS saisir votre nom d'utilisateur et votre mot de passe car cette connexion n'est pas sécurisée et vous ne voulez pas que vos informations d'identification transitent par le réseau sans protection.

Pour cette raison, vous devez toujours exécuter Wetty via HTTPS. Créons un certificat auto-signé pour sécuriser notre connexion au serveur distant :

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

Et puis utilisez-le pour lancer Wetty via HTTPS.

Veuillez noter que vous devrez ouvrir le port HTTPS personnalisé sur lequel vous souhaiterez exécuter Wetty :

firewall-cmd --add-service=https # Run Wetty in the standard HTTPS port (443)
firewall-cmd --permanent --add-service=https
firewall-cmd --add-port=XXXX/tcp # Run Wetty on TCP port XXXX
nohup node app.js --sslkey key.pem --sslcert cert.pem -p 8080 &

La dernière commande de la séquence ci-dessus lancera Wetty en arrière-plan en écoutant sur le port 8080. Puisque nous utilisons un certificat auto-signé, il faut s'attendre à ce que le navigateur affiche un avertissement de sécurité – il est parfaitement sûr de l'ignorer et d'ajouter une exception de sécurité – soit de manière permanente, soit pour la session en cours :

Après avoir confirmé l'exception de sécurité, vous pourrez vous connecter à votre VPS en utilisant Wetty. Il va sans dire que vous pouvez exécuter toutes les commandes et tous les programmes comme si vous étiez assis devant un terminal réel ou virtuel, comme vous pouvez le voir dans la capture d'écran suivante :