Wyszukiwanie w witrynie

Jak uzyskać dostęp do terminala serwera Linux w przeglądarce internetowej za pomocą narzędzia „Wetty (Web + tty)”.


Jako administrator systemu prawdopodobnie łączysz się ze zdalnymi serwerami za pomocą programu takiego jak GNOME Terminal (lub podobnego), jeśli używasz komputera z systemem Linux, lub klienta SSH, takiego jak Putty, jeśli masz komputerze z systemem Windows podczas wykonywania innych zadań, takich jak przeglądanie Internetu lub sprawdzanie poczty e-mail.

Czy nie byłoby fantastycznie, gdyby istniał sposób na dostęp do zdalnego serwera Linux bezpośrednio z przeglądarki internetowej? Na szczęście dla nas wszystkich istnieje narzędzie o nazwie Wetty (Web + tty), które pozwala nam to zrobić – bez konieczności przełączania programy i wszystko z tego samego okna przeglądarki internetowej.

Instalowanie Wetty w systemie Linux

Wetty jest dostępny w repozytorium GitHub jego programisty. Z tego powodu, niezależnie od dystrybucji, używasz pewnych zależności, które należy najpierw zainstalować ręcznie przed lokalnym sklonowaniem repozytorium i zainstalowaniem programu.

W dystrybucjach opartych na RHEL, takich jak CentOS, Rocky Linux i AlmaLinux, musisz zainstalować NodeJS i repozytorium EPEL, jak pokazano:


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

W Debianie i jego pochodnych wersja NodeJS dostępna w repozytoriach dystrybucji jest starsza niż minimalna wersja wymagana do zainstalowania Wetty, dlatego musisz ją zainstalować z NodeJS Repozytorium programistów 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

Po zainstalowaniu tych zależności sklonuj repozytorium GitHub:

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

Zmień katalog roboczy na wetty, jak wskazano w powyższym komunikacie:

cd wetty

następnie zainstaluj Wetty, uruchamiając:

npm install

Jeśli podczas procesu instalacji pojawią się komunikaty o błędach, zajmij się nimi przed kontynuowaniem. W moim przypadku potrzeba nowszej wersji NodeJS w Debianie była problemem, który należało rozwiązać przed pomyślnym uruchomieniem instalacji npm.

Uruchamianie Wetty i dostęp do terminala Linux z przeglądarki internetowej

W tym momencie możesz uruchomić interfejs sieciowy na porcie lokalnym 8080 dla Wetty, uruchamiając go (zakładając, że bieżący katalog roboczy to /wetty) :

node app.js -p 8080

Jak widać na obrazku poniżej:

Ale wyświadcz sobie przysługę i NIE wprowadzaj swojej nazwy użytkownika i hasła, ponieważ to połączenie nie jest bezpieczne, a nie chcesz, aby Twoje dane uwierzytelniające przesyłane były drogą bez ochrony.

Z tego powodu zawsze powinieneś uruchamiać Wetty przez HTTPS. Utwórzmy certyfikat z podpisem własnym, aby zabezpieczyć nasze połączenie ze zdalnym serwerem:

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

A następnie użyj go do uruchomienia Wetty przez HTTPS.

Pamiętaj, że będziesz musiał otworzyć niestandardowy port HTTPS, na którym chcesz uruchomić 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 &

Ostatnie polecenie w powyższej sekwencji uruchomi Wetty w tle nasłuchujące na porcie 8080. Ponieważ używamy certyfikatu z podpisem własnym, należy się spodziewać, że przeglądarka wyświetli ostrzeżenie dotyczące bezpieczeństwa – całkowicie bezpiecznie jest je zignorować i dodać wyjątek bezpieczeństwa – na stałe lub dla bieżącej sesji:

Po potwierdzeniu wyjątku bezpieczeństwa będziesz mógł zalogować się do swojego VPS za pomocą Wetty. Jest rzeczą oczywistą, że możesz uruchamiać wszystkie polecenia i programy tak, jakbyś siedział przed prawdziwym lub wirtualnym terminalem, co widać na poniższym zrzucie ekranu: