Sådan får du adgang til Linux Server Terminal i webbrowser ved hjælp af Wetty (Web + tty) -værktøjet


Som systemadministrator opretter du sandsynligvis forbindelse til eksterne servere ved hjælp af et program som GNOME Terminal (eller lignende), hvis du er på et Linux-skrivebord, eller en SSH-klient såsom Putty, hvis du har en Windows-maskine, mens du udfører andre opgaver som at surfe på nettet eller kontrollere din e-mail.

Ville det ikke være fantastisk, hvis der var en måde at få adgang til en ekstern Linux-server direkte fra webbrowseren? Heldigvis for os alle er der et værktøj kaldet Wetty (Web + tty), der giver os mulighed for netop det - uden behov for at skifte program og alt fra det samme webbrowser-vindue.

Installation af Wetty i CentOS 7 og Debian 8

Wetty er tilgængelig fra GitHub-arkivet for dets udvikler. Af den grund skal nogle afhængigheder installeres manuelt, uanset hvilken distribution du bruger, før kloning af lageret lokalt og installation af programmet.

I Fedora-baserede distroer (i CentOS 7 og RHEL 7 skal EPEL-arkivet først være aktiveret):

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

I Debian og dets derivater er versionen af NodeJS tilgængelig fra distributionens opbevaringssteder fra september 2015 (0.10.29) ældre end den mindste version, der kræves for at installere Wetty (0.10.31), så du skal installere den fra NodeJS GitHub udvikler arkiv:

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

Efter installation af disse afhængigheder skal du klone GitHub-arkivet:

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

Skift arbejdsmappen til wetty, som angivet i meddelelsen ovenfor:

# cd wetty

installer derefter Wetty ved at køre:

# npm install

Hvis du får fejlmeddelelser under installationsprocessen, bedes du adressere dem, inden du fortsætter videre. I mit tilfælde var behovet for en nyere version af NodeJS i Debian et problem, der skulle løses, før npm-installationen blev kørt med succes.

Start Wetty og få adgang til Linux Terminal fra webbrowser

På dette tidspunkt kan du starte webgrænsefladen i den lokale port 8080 til Wetty ved at køre (dette forudsætter, at din nuværende arbejdsmappe er/wetty):

# node app.js -p 8080

Som du kan se på billedet nedenfor:

Men gør dig selv en tjeneste og indtast IKKE dit brugernavn og din adgangskode, da denne forbindelse ikke er sikker, og du ikke ønsker, at dine legitimationsoplysninger skal rejse gennem ledningen ubeskyttet.

Af den grund skal du altid køre Wetty gennem HTTPS. Lad os oprette et selvsigneret certifikat for at sikre vores forbindelse til fjernserveren:

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

Og brug det derefter til at starte Wetty via HTTPS.

Bemærk, at du bliver nødt til at åbne den brugerdefinerede HTTPS-port, hvor du vil køre 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 &

Den sidste kommando i ovenstående rækkefølge starter Wetty i baggrunden ved at lytte på port 8080. Da vi bruger et selvsigneret certifikat, kan det forventes, at browseren viser en sikkerhedsadvarsel - Det er helt sikkert at ignorere det og tilføj en sikkerhedsundtagelse - enten permanent eller for den aktuelle session:

Når du har bekræftet sikkerhedsundtagelsen, kan du logge ind på din VPS ved hjælp af Wetty. Det siger sig selv, at du kan køre alle kommandoer og programmer, som om du sad foran en rigtig eller virtuel terminal, som du kan se i følgende skærmbillede: