GoTTY - Bagikan Terminal Linux Anda (TTY) sebagai Aplikasi Web


GoTTY adalah alat baris perintah sederhana berbasis GoLang yang memungkinkan Anda berbagi terminal (TTY) sebagai aplikasi web. Itu mengubah alat baris perintah menjadi aplikasi web.

Ia menggunakan emulator terminal Chrome OS (hterm) untuk menjalankan terminal berbasis JavaScript di browser web. Dan yang terpenting, GoTTY menjalankan server soket web yang pada dasarnya mentransfer keluaran dari TTY ke klien dan menerima masukan dari klien (yaitu jika masukan dari klien diizinkan) dan meneruskannya ke TTY.

Baca Juga: Teleconsole – Bagikan Terminal Linux Anda dengan Teman Anda

Arsitekturnya (ide hterm + soket web) terinspirasi oleh Program Wetty yang memungkinkan terminal melalui HTTP dan HTTPS.

Prasyarat:

Anda harus menginstal lingkungan GoLang (Bahasa Pemrograman Go) di Linux untuk menjalankan GoTTY.

Cara Menginstal GoTTY di Sistem Linux

Jika Anda sudah memiliki lingkungan GoLang yang berfungsi, jalankan perintah go get di bawah untuk menginstalnya:

go get github.com/yudai/gotty

Perintah di atas akan menginstal biner GoTTY di variabel lingkungan GOBIN Anda, coba periksa apakah demikian:

ls $GOPATH/bin/

Cara Menggunakan GoTTY di Linux

Untuk menjalankannya, Anda dapat menggunakan variabel GOBIN env dan memerintahkan fitur pelengkapan otomatis sebagai berikut:

$GOBIN/gotty

Jika tidak, jalankan GoTTY atau program Go lainnya tanpa mengetikkan path lengkap ke biner, tambahkan variabel GOBIN Anda ke PATH dalam file ~/.profile menggunakan perintah ekspor di bawah :

export PATH="$PATH:$GOBIN"

Simpan file dan tutup. Kemudian sumber file untuk melakukan perubahan di atas:

source ~/.profile

Sintaks umum untuk menjalankan perintah GoTTY adalah:

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

Sekarang jalankan GoTTY dengan perintah apa pun seperti perintah df untuk melihat ruang dan penggunaan partisi disk sistem dari browser web:

gotty df -h

GoTTY akan memulai server web pada port 8080 secara default. Kemudian buka URL: http://127.0.0.1:8080/ di browser web Anda dan Anda akan melihat perintah yang berjalan seolah-olah dijalankan di terminal Anda:

Cara Menyesuaikan GoTTY di Linux

Anda dapat mengubah opsi default dan terminal Anda (hterm) di file profil ~/.gotty, maka file ini akan dimuat secara default jika ada.

Ini adalah file penyesuaian utama yang dibaca dengan perintah gotty, jadi, buatlah sebagai berikut:

touch ~/.gotty

Dan tetapkan nilai valid Anda sendiri untuk opsi konfigurasi (temukan semua opsi konfigurasi di sini) untuk menyesuaikan GoTTY misalnya:

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

Anda dapat mengatur file index.html Anda sendiri menggunakan opsi --index dari baris perintah:

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

Cara Menggunakan Fitur Keamanan di GoTTY

Karena GoTTY tidak menawarkan keamanan yang andal secara default, Anda perlu menggunakan fitur keamanan tertentu yang dijelaskan di bawah secara manual.

Izinkan Klien untuk Menjalankan Perintah/Ketik Input di Terminal

Perhatikan bahwa, secara default, GoTTY tidak mengizinkan klien mengetikkan input ke dalam TTY, ini hanya mengaktifkan pengubahan ukuran jendela.

Namun, Anda dapat menggunakan opsi -w atau --permit-write untuk mengizinkan klien menulis ke TTY, yang tidak disarankan karena ancaman keamanan pada server.

Perintah berikut akan menggunakan editor baris perintah vi untuk membuka file fossmint.txt untuk diedit di browser web:

gotty -w vi fossmint.txt

Di bawah ini adalah antarmuka vi seperti yang terlihat dari browser web (gunakan perintah vi di sini seperti biasa):

Gunakan GoTTY dengan Otentikasi Dasar (Nama Pengguna dan Kata Sandi).

Cobalah untuk mengaktifkan mekanisme otentikasi dasar, di mana klien akan diminta memasukkan nama pengguna dan kata sandi yang ditentukan untuk terhubung ke server GoTTY.

Perintah di bawah ini akan membatasi akses klien menggunakan opsi -c untuk menanyakan kredensial tertentu kepada pengguna (nama pengguna: test dan kata sandi: @67890):

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

Gotty Menghasilkan URL Acak

Cara lain untuk membatasi akses ke server adalah dengan menggunakan opsi -r. Di sini, GoTTY akan menghasilkan URL acak sehingga hanya pengguna yang mengetahui URL tersebut yang dapat mengakses server.

Gunakan juga opsi –format judul “GoTTY – {{ .Command }} ({{ .Hostname }})” untuk menentukan judul antarmuka browser web dan perintah sekilas digunakan untuk menampilkan statistik pemantauan sistem :

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

Berikut hasil perintah di atas dilihat dari antarmuka web browser:

Gunakan GoTTY dengan SSL/TLS

Karena secara default, semua koneksi antara server dan klien tidak dienkripsi, ketika Anda mengirim informasi rahasia melalui GoTTY seperti kredensial pengguna atau info lainnya, Anda harus menggunakan -t atau - Opsi -tls yang mengaktifkan TLS/SSL pada sesi:

GoTTY secara default akan membaca file sertifikat ~/.gotty.crt dan file kunci ~/.gotty.key, oleh karena itu, mulailah dengan membuat sertifikasi yang ditandatangani sendiri juga sebagai file kunci menggunakan perintah openssl di bawah ini (jawab pertanyaan yang diajukan untuk menghasilkan sertifikat dan file kunci):

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

Kemudian gunakan GoTTY dengan cara yang aman dengan SSL/TLS diaktifkan sebagai berikut:

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

Bagikan Terminal Anda Dengan Banyak Klien

Anda dapat menggunakan terminal multiplexer untuk berbagi satu proses dengan banyak klien, perintah berikut akan memulai sesi tmux baru bernama gotty dengan perintah sekilas (pastikan Anda telah menginstal tmux):

gotty tmux new -A -s gotty glances 

Untuk membaca file konfigurasi yang berbeda, gunakan opsi –config “/path/to/file” seperti:

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

Untuk menampilkan versi GoTTY, jalankan perintah:

gotty -v 

Kunjungi repositori GoTTY GitHub untuk menemukan contoh penggunaan lainnya: https://github.com/yudai/gotty

Itu saja! Sudahkah Anda mencobanya? Bagaimana Anda menemukan GoTTY? Bagikan pemikiran Anda kepada kami melalui formulir umpan balik di bawah.