GoTTY - Jaa Linux-päätteesi (TTY) verkkosovelluksena


GoTTY on yksinkertainen GoLang-pohjainen komentorivityökalu, jonka avulla voit jakaa terminaalisi (TTY) verkkosovelluksena. Se muuttaa komentorivityökalut verkkosovelluksiksi.

Se käyttää Chrome-käyttöjärjestelmän pääteemulaattoria (hterm) JavaScript-pohjaisen päätteen suorittamiseen verkkoselaimissa. Ja mikä tärkeintä, GoTTY käyttää verkkoliitäntäpalvelinta, joka periaatteessa siirtää lähdön TTY:stä asiakkaille ja vastaanottaa syötteitä asiakkailta (eli jos asiakkaiden syöttö on sallittu) ja välittää sen edelleen. TTY:hen.

Lue myös: Telekonsoli – jaa Linux-päätteesi ystäviesi kanssa

Sen arkkitehtuuri (hterm + web socket -idea) on saanut inspiraationsa Wetty-ohjelmasta, joka mahdollistaa terminaalin HTTP ja HTTPS kautta.

Edellytykset:

Sinulla tulee olla GoLang (Go Programming Language) -ympäristö asennettuna Linuxiin GoTTY:n suorittamiseksi.

Kuinka asentaa GoTTY Linux-järjestelmiin

Jos sinulla on jo toimiva GoLang-ympäristö, asenna se suorittamalla alla oleva go get -komento:

go get github.com/yudai/gotty

Yllä oleva komento asentaa GoTTY-binaarin GOBIN-ympäristömuuttujaasi. Yritä tarkistaa, onko näin:

ls $GOPATH/bin/

GoTTY:n käyttäminen Linuxissa

Voit suorittaa sen käyttämällä GOBIN env -muuttujaa ja komennon automaattista täydennysominaisuutta seuraavasti:

$GOBIN/gotty

Muussa tapauksessa suorita GoTTY tai jokin muu Go-ohjelma kirjoittamatta koko binaaripolkua, lisää GOBIN-muuttuja PATH-arvoon ~/.profile-tiedostossa käyttämällä alla olevaa export-komentoa. :

export PATH="$PATH:$GOBIN"

Tallenna tiedosto ja sulje se. Lähde sitten tiedosto suorittaaksesi yllä olevat muutokset:

source ~/.profile

GoTTY-komentojen suorittamisen yleinen syntaksi on:

Usage: gotty [options] <Linux command here> [<arguments...>]

Suorita nyt GoTTY millä tahansa komennolla, kuten df-komennolla, tarkastellaksesi järjestelmän levyosioiden tilaa ja käyttöä verkkoselaimesta:

gotty df -h

GoTTY käynnistää verkkopalvelimen portista 8080 oletuksena. Avaa sitten URL: http://127.0.0.1:8080/ verkkoselaimessasi ja näet käynnissä olevan komennon aivan kuin se olisi käynnissä päätteessäsi:

GoTTY:n mukauttaminen Linuxissa

Voit muuttaa oletusasetuksia ja päätettä (hterm) profiilitiedostossa ~/.gotty. Se lataa tämän tiedoston oletuksena, jos se on olemassa.

Tämä on tärkein mukautustiedosto, jonka gotty-komennot lukevat, joten luo se seuraavasti:

touch ~/.gotty

Ja aseta omat kelvolliset arvosi konfigurointiasetuksiin (löydät kaikki konfigurointivaihtoehdot täältä) mukauttaaksesi GoTTY:tä esimerkiksi:

// Listen at port 9000 by default
port = "9000"

// Enable TSL/SSL by default
enable_tls = true

// hterm preferences
// Smaller font and a little bit bluer background color
preferences {
    font_size = 5,
    background_color = "rgb(16, 16, 32)"
}

Voit määrittää oman index.html-tiedoston käyttämällä komentorivin --index-vaihtoehtoa:

gotty --index /path/to/index.html uptime

Kuinka käyttää suojausominaisuuksia GoTTY:ssä

Koska GoTTY ei tarjoa luotettavaa suojausta oletuksena, sinun on käytettävä manuaalisesti tiettyjä alla selitettyjä suojausominaisuuksia.

Salli asiakkaiden suorittaa komentoja/tyypin syöttöä päätteessä

Huomaa, että oletusarvoisesti GoTTY ei salli asiakkaiden kirjoittaa syöttöä TTY:hen, se sallii vain ikkunan koon muuttamisen.

Voit kuitenkin käyttää vaihtoehtoa -w tai --permit-write salliaksesi asiakkaiden kirjoittaa TTY:hen, mikä ei ole suositeltavaa palvelimeen kohdistuvien tietoturvauhkien vuoksi.

Seuraava komento avaa vi-komentorivieditorilla tiedoston fossmint.txt muokattavaksi verkkoselaimessa:

gotty -w vi fossmint.txt

Alla on vi-käyttöliittymä verkkoselaimesta nähtynä (käytä vi-komentoja täällä tavalliseen tapaan):

Käytä GoTTY:tä perustodennuksen (käyttäjätunnus ja salasana) kanssa

Yritä aktivoida perustodennusmekanismi, jossa asiakkaiden on syötettävä määritetty käyttäjätunnus ja salasana muodostaakseen yhteyden GoTTY-palvelimeen.

Alla oleva komento rajoittaa asiakkaan käyttöä käyttämällä -c-vaihtoehtoa ja pyytää käyttäjiltä tiettyjä tunnistetietoja (käyttäjänimi: testi ja salasana: @67890):

gotty -w -p "9000" -c "test:@67890" glances

Gotty Luo satunnainen URL-osoite

Toinen tapa rajoittaa pääsyä palvelimeen on käyttää -r-vaihtoehtoa. Täällä GoTTY luo satunnaisen URL-osoitteen, jotta vain URL-osoitteen tietävät käyttäjät pääsevät palvelimeen.

Käytä myös -title-muotoa "GoTTY – {{ .Command }} ({{ .Hostname }})" määrittääksesi verkkoselaimen käyttöliittymän otsikon ja glances -komentoa käytetään näyttämään järjestelmän valvontatilastot. :

gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Seuraava on yllä olevan komennon tulos verkkoselaimen käyttöliittymästä nähtynä:

Käytä GoTTY:tä SSL/TLS:n kanssa

Koska oletusarvoisesti kaikki palvelimen ja asiakkaiden väliset yhteydet eivät ole salattuja, kun lähetät GoTTY:n kautta salaisia tietoja, kuten käyttäjätunnuksia tai muita tietoja, sinun on käytettävä -t tai - -tls -vaihtoehto, joka ottaa TLS/SSL:n käyttöön istunnossa:

GoTTY lukee oletuksena varmennetiedoston ~/.gotty.crt ja avaintiedoston ~/.gotty.key, joten aloita luomalla myös itse allekirjoitettu varmenne. avaintiedostona käyttämällä alla olevaa openssl-komentoa (vastaa esitettyyn kysymykseen luodaksesi varmenne- ja avaintiedostot):

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt

Käytä sitten GoTTY:tä turvallisella tavalla SSL/TLS:n ollessa käytössä seuraavasti:

gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Jaa terminaalisi useiden asiakkaiden kanssa

Voit käyttää päätemultipleksereita yhden prosessin jakamiseen useiden asiakkaiden kanssa, seuraava komento käynnistää uuden tmux-istunnon nimeltä gotty with glances -komento (varmista, että tmux on asennettu):

gotty tmux new -A -s gotty glances 

Jos haluat lukea toisen määritystiedoston, käytä –config "/polku/tiedostoon" -vaihtoehtoa seuraavasti:

gotty -tr --config "~/gotty_new_config" --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Näytä GoTTY-versio suorittamalla komento:

gotty -v 

Käy GoTTY GitHub -tietovarastossa löytääksesi lisää käyttöesimerkkejä: https://github.com/yudai/gotty

Siinä kaikki! Oletko kokeillut sitä? Miten löydät GoTTY:n? Jaa ajatuksesi kanssamme alla olevan palautelomakkeen kautta.