GoTTY - Ipaambit ang Imong Linux Terminal (TTY) isip Web Application


Ang GoTTY usa ka yano nga GoLang base sa command line tool nga makapahimo kanimo sa pagpaambit sa imong terminal(TTY) isip usa ka web application. Gihimo niini ang mga himan sa command line ngadto sa mga aplikasyon sa web.

Gigamit niini ang terminal emulator (hterm) sa Chrome OS aron ipatuman ang terminal nga nakabase sa JavaScript sa mga web browser. Ug ang importante, ang GoTTY nagpadagan sa usa ka web socket server nga nagbalhin sa output gikan sa TTY ngadto sa mga kliyente ug nakadawat og input gikan sa mga kliyente (kana kung ang input gikan sa mga kliyente gitugutan) ug ipasa kini ngadto sa TTY.

Ang arkitektura niini (hterm + web socket nga ideya) giinspirar sa Wetty program nga makapahimo sa terminal sa HTTP ug HTTPS.

Kinahanglan nimo nga adunay GoLang (Go Programming Language) nga palibot nga na-install sa Linux aron makadagan ang GoTTY.

Giunsa Pag-install ang GoTTY sa Linux Systems

Kung aduna ka'y nagtrabaho nga palibot sa GoLang, padagana ang go get command sa ubos aron i-install kini:

# go get github.com/yudai/gotty

Ang sugo sa ibabaw mag-instalar sa GoTTY binary sa imong GOBIN environment variable, sulayi pagsusi kung mao kana ang kahimtang:

# ls $GOPATH/bin/

Giunsa Paggamit ang GoTTY sa Linux

Sa pagpadagan niini, mahimo nimong gamiton ang GOBIN env variable ug command auto-completion feature sama sa mosunod:

# $GOBIN/gotty

Kung dili, pagdagan ang GoTTY o bisan unsang programa sa Go nga wala i-type ang tibuuk nga agianan sa binary, idugang ang imong variable nga GOBIN sa PATH sa file nga ~/.profile gamit ang mando sa pag-eksport sa ubos:

export PATH="$PATH:$GOBIN"

I-save ang file ug isira kini. Unya gigikanan ang file aron ma-epekto ang mga pagbag-o sa ibabaw:

# source ~/.profile

Ang kinatibuk-ang syntax alang sa pagpadagan sa mga sugo sa GoTTY mao ang:

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

Karon padagana ang GoTTY sa bisan unsang command sama sa df command aron makita ang system disk partitions space ug paggamit gikan sa web browser:

# gotty df -h

Magsugod ang GoTTY og web server sa port 8080 nga default. Dayon ablihi ang URL: http://127.0.0.1:8080/ sa imong web browser ug imong makita ang running command nga daw nagdagan sa imong terminal:

Giunsa Pag-customize ang GoTTY sa Linux

Mahimo nimong usbon ang default nga mga kapilian ug ang imong terminal (hterm) sa profile file ~/.gotty, kini magkarga niini nga file pinaagi sa default kung kini anaa.

Kini ang nag-unang customization file nga gibasa sa gotty commands, busa, paghimo niini sama sa mosunod:

# touch ~/.gotty

Ug itakda ang imong kaugalingon nga balido nga mga kantidad alang sa mga kapilian sa config (pangitaa ang tanan nga mga kapilian sa config dinhi) aron ipasadya ang GoTTY pananglitan:

// 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)"
}

Mahimo nimong itakda ang imong kaugalingong index.html file gamit ang --index nga opsyon gikan sa command line:

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

Giunsa Paggamit ang Mga Feature sa Seguridad sa GoTTY

Tungod kay ang GoTTY wala magtanyag ug kasaligan nga seguridad pinaagi sa default, kinahanglan nimo nga mano-mano ang paggamit sa pipila ka mga bahin sa seguridad nga gipasabut sa ubos.

Timan-i nga, pinaagi sa default, ang GoTTY wala magtugot sa mga kliyente sa pag-type sa input sa TTY, kini makahimo lamang sa pagbag-o sa bintana.

Bisan pa, mahimo nimong gamiton ang -w o --permit-write nga kapilian aron tugutan ang mga kliyente nga magsulat sa TTY, nga wala girekomenda tungod sa mga hulga sa seguridad sa server.

Ang mosunod nga sugo mogamit sa vi command line editor aron maablihan ang file nga fossmint.txt para sa pag-edit sa web browser:

# gotty -w vi fossmint.txt

Sa ubos mao ang vi interface nga makita gikan sa web browser (gamita ang vi commands dinhi sama sa naandan):

Sulayi nga i-aktibo ang usa ka sukaranan nga mekanismo sa pag-authenticate, diin ang mga kliyente kinahanglan nga i-input ang gipiho nga username ug password aron makonektar sa server sa GoTTY.

Ang mando sa ubos magpugong sa pag-access sa kliyente gamit ang -c nga kapilian aron mangutana sa mga tiggamit alang sa piho nga mga kredensyal (username: pagsulay ug password: @67890):

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

Ang laing paagi sa pagpugong sa pag-access sa server mao ang paggamit sa -r nga opsyon. Dinhi, ang GoTTY maghimo usa ka random nga URL aron ang mga tiggamit lamang nga nahibal-an ang URL ang makakuha og access sa server.

Gamita usab ang –title-format “GoTTY – {{ .Command }} ({{ .Hostname }})” nga opsyon aron ipasabot ang titulo sa interface sa mga web browser ug ang glances command gigamit aron ipakita ang system monitoring stats:

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

Ang mosunod mao ang resulta sa sugo sa ibabaw nga makita gikan sa web browser interface:

Tungod kay sa default, ang tanan nga koneksyon tali sa server ug mga kliyente dili ma-encrypt, kung magpadala ka og sekreto nga impormasyon pinaagi sa GoTTY sama sa mga kredensyal sa gumagamit o bisan unsang ubang impormasyon, kinahanglan nimong gamiton ang -t o - -tls nga opsyon nga makapahimo sa TLS/SSL sa sesyon:

Ang GoTTY kay sa default mobasa sa certificate file ~/.gotty.crt ug key file ~/.gotty.key, busa, magsugod pinaagi sa paghimo og self-signed nga sertipikasyon usab isip key file gamit ang openssl command sa ubos (tubaga ang pangutana nga gipangutana aron makamugna ang cert ug key files):

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

Dayon gamita ang GoTTY sa luwas nga paagi nga gipagana ang SSL/TLS sama sa mosunod:

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

Mahimo nimong gamiton ang glances command (siguruha nga na-install nimo ang tmux):

# gotty tmux new -A -s gotty glances 

Aron mabasa ang lain-laing config file, gamita ang –config “/path/to/file” nga opsyon sama niini:

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

Aron ipakita ang bersyon sa GoTTY, padagana ang command:

# gotty -v 

Bisitaha ang GoTTY GitHub repository aron makit-an ang daghang mga pananglitan sa paggamit: https://github.com/yudai/gotty

Kana lang! Nasulayan na ba nimo kini? Giunsa nimo pagpangita ang GoTTY? Ipakigbahin ang imong mga hunahuna kanamo pinaagi sa porma sa feedback sa ubos.