Kako dostopati do strežniškega terminala Linux v spletnem brskalniku z orodjem Wetty (Web + tty)


Kot sistemski skrbnik se verjetno povežete z oddaljenimi strežniki s pomočjo programa, kot je GNOME Terminal (ali podoben), če ste na namizju Linuxa, ali odjemalca SSH, kot je Putty, če imate računalnik z operacijskim sistemom Windows, medtem ko izvajate druge naloge, kot je brskanje po spletu ali preverjanje e-pošte.

Ali ne bi bilo čudovito, če bi obstajal način za dostop do oddaljenega strežnika Linux neposredno iz spletnega brskalnika? Na srečo vseh nas obstaja orodje Wetty (Web + tty), ki nam omogoča, da to storimo - brez potrebe po zamenjavi programov in vseh iz istega okna spletnega brskalnika.

Namestitev Wetty v CentOS 7 in Debian 8

Wetty je na voljo v skladišču GitHub njegovega razvijalca. Zato je treba ne glede na distribucijo, ki jo uporabljate, nekatere odvisnosti najprej ročno namestiti, preden lokalno klonirate repozitorij in namestite program.

V distribucijskih sistemih s sistemom Fedora (v CentOS 7 in RHEL 7 je treba najprej omogočiti repozitorij EPEL):

# yum update && yum install epel-release git nodejs npm

V Debianu in njegovih izvedenkah je različica NodeJS, ki je na voljo v skladiščih distribucije od septembra 2015 (0.10.29), starejša od minimalne različice, ki je potrebna za namestitev Wetty (0.10.31), zato jo morate namestiti iz NodeJS GitHub skladišče za razvijalce:

# aptitude install curl
# curl --silent --location https://deb.nodesource.com/setup_0.12 | bash -
# aptitude update && aptitude install -y git nodejs npm

Po namestitvi teh odvisnosti klonirajte repozitorij GitHub:

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

Spremenite delovni imenik v mokro, kot je navedeno v zgornjem sporočilu:

# cd wetty

nato namestite Wetty z zagonom:

# npm install

Če med postopkom namestitve dobite sporočilo o napaki, jih naslovite, preden nadaljujete. V mojem primeru je bila potreba po novejši različici NodeJS v Debianu težava, ki jo je bilo treba rešiti pred uspešnim zagonom namestitve npm.

Zagon Wettyja in dostopa do terminala Linux iz spletnega brskalnika

Na tem mestu lahko zaženete spletni vmesnik v lokalnih vratih 8080 za Wetty z zagonom (to predvideva, da je vaš trenutni delovni imenik/wetty):

# node app.js -p 8080

Kot lahko vidite na spodnji sliki:

Toda naredite si uslugo in NE vnašajte svojega uporabniškega imena in gesla, saj ta povezava ni varna in ne želite, da vaše poverilnice potujejo po žici nezaščitene.

Iz tega razloga morate Wetty vedno zagnati prek HTTPS. Ustvarimo samopodpisano potrdilo, da zaščitimo svojo povezavo z oddaljenim strežnikom:

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

Nato z njim zaženite Wetty prek HTTPS.

Upoštevajte, da boste morali odpreti vrata HTTPS po meri, kjer boste želeli zagnati 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 &

Zadnji ukaz v zgornjem zaporedju začne Wetty v ozadju poslušati na vratih 8080. Ker uporabljamo lastnoročno podpisano potrdilo, je pričakovati, da bo brskalnik prikazal varnostno opozorilo - popolnoma varno je, če ga prezrete in dodajte varnostno izjemo - trajno ali za trenutno sejo:

Ko potrdite varnostno izjemo, se boste lahko v svoj VPS prijavili z Wetty. Samoumevno je, da lahko vse ukaze in programe zaženete, kot da bi sedeli pred resničnim ali navideznim terminalom, kot lahko vidite v naslednji oddaji zaslona: