Wyszukiwanie w witrynie

GoTTY — udostępnij swój terminal Linux (TTY) jako aplikację internetową


GoTTY to proste narzędzie wiersza poleceń oparte na GoLang, które umożliwia udostępnianie terminala (TTY) jako aplikacji internetowej. Zamienia narzędzia wiersza poleceń w aplikacje internetowe.

Wykorzystuje emulator terminala systemu operacyjnego Chrome (hterm) do uruchamiania terminala opartego na JavaScript w przeglądarkach internetowych. I co ważne, GoTTY uruchamia serwer gniazd sieciowych, który zasadniczo przesyła dane wyjściowe z TTY do klientów i odbiera dane wejściowe od klientów (o ile dane wejściowe od klientów są dozwolone) i przesyła je dalej do TTY.

Przeczytaj także: Telekonsola – udostępnij swój terminal linuksowy znajomym

Jego architektura (idea hterm + gniazdo sieciowe) została zainspirowana programem Wetty, który umożliwia terminal poprzez HTTP i HTTPS.

Warunki wstępne:

Aby uruchomić GoTTY, powinieneś mieć zainstalowane środowisko GoLang (Go Programming Language) w systemie Linux.

Jak zainstalować GoTTY w systemach Linux

Jeśli masz już działające środowisko GoLang, uruchom poniższe polecenie go get, aby je zainstalować:

go get github.com/yudai/gotty

Powyższe polecenie zainstaluje plik binarny GoTTY w zmiennej środowiskowej GOBIN. Spróbuj sprawdzić, czy tak jest:

ls $GOPATH/bin/

Jak korzystać z GoTTY w systemie Linux

Aby go uruchomić, możesz użyć zmiennej GOBIN env i funkcji automatycznego uzupełniania poleceń w następujący sposób:

$GOBIN/gotty

W przeciwnym razie uruchom GoTTY lub inny program Go bez wpisywania pełnej ścieżki do pliku binarnego, dodaj zmienną GOBIN do PATH w pliku ~/.profile za pomocą poniższego polecenia export :

export PATH="$PATH:$GOBIN"

Zapisz plik i zamknij go. Następnie pobierz plik, aby zastosować powyższe zmiany:

source ~/.profile

Ogólna składnia uruchamiania poleceń GoTTY jest następująca:

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

Teraz uruchom GoTTY za pomocą dowolnego polecenia, takiego jak polecenie df, aby wyświetlić miejsce na partycjach dysku systemowego i wykorzystanie z poziomu przeglądarki internetowej:

gotty df -h

GoTTY domyślnie uruchomi serwer WWW na porcie 8080. Następnie otwórz adres URL: http://127.0.0.1:8080/ w swojej przeglądarce internetowej, a zobaczysz działające polecenie tak, jakby było uruchomione na Twoim terminalu:

Jak dostosować GoTTY w systemie Linux

Możesz zmienić opcje domyślne i terminal (hterm) w pliku profilu ~/.gotty, domyślnie załaduje ten plik, jeśli istnieje.

Jest to główny plik dostosowywania odczytywany przez polecenia Gotty, więc utwórz go w następujący sposób:

touch ~/.gotty

I ustaw własne prawidłowe wartości opcji konfiguracyjnych (wszystkie opcje konfiguracyjne znajdziesz tutaj), aby dostosować GoTTY, na przykład:

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

Możesz ustawić własny plik index.html za pomocą opcji --index z wiersza poleceń:

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

Jak korzystać z funkcji bezpieczeństwa w GoTTY

Ponieważ GoTTY domyślnie nie zapewnia niezawodnego bezpieczeństwa, musisz ręcznie skorzystać z niektórych funkcji bezpieczeństwa opisanych poniżej.

Zezwalaj klientom na uruchamianie poleceń/wpisywanie danych w terminalu

Należy pamiętać, że domyślnie GoTTY nie pozwala klientom na wpisywanie danych do TTY, umożliwia jedynie zmianę rozmiaru okna.

Można jednak użyć opcji -w lub --permit-write, aby zezwolić klientom na zapis do TTY, co nie jest zalecane ze względu na zagrożenia bezpieczeństwa serwera.

Poniższe polecenie użyje edytora wiersza poleceń vi do otwarcia pliku fossmint.txt do edycji w przeglądarce internetowej:

gotty -w vi fossmint.txt

Poniżej znajduje się interfejs vi widziany z przeglądarki internetowej (użyj tutaj jak zwykle poleceń vi):

Używaj GoTTY z uwierzytelnianiem podstawowym (nazwa użytkownika i hasło).

Spróbuj aktywować podstawowy mechanizm uwierzytelniania, w którym klienci będą musieli wprowadzić określoną nazwę użytkownika i hasło, aby połączyć się z serwerem GoTTY.

Poniższe polecenie ograniczy dostęp klienta za pomocą opcji -c, aby zapytać użytkowników o określone dane uwierzytelniające (nazwa użytkownika: test i hasło: @67890):

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

Muszę wygenerować losowy adres URL

Innym sposobem ograniczenia dostępu do serwera jest użycie opcji -r. W tym przypadku GoTTY wygeneruje losowy adres URL, dzięki czemu tylko użytkownicy znający adres URL będą mogli uzyskać dostęp do serwera.

Użyj także opcji –title-format „GoTTY – {{ .Command }} ({{ .Hostname }})”, aby zdefiniować tytuł interfejsu przeglądarki internetowej, a polecenie rzutów służy do wyświetlania statystyk monitorowania systemu :

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

Poniżej przedstawiono wynik powyższego polecenia widziany z interfejsu przeglądarki internetowej:

Używaj GoTTY z SSL/TLS

Ponieważ domyślnie wszystkie połączenia pomiędzy serwerem a klientami nie są szyfrowane, kiedy wysyłasz tajne informacje za pośrednictwem GoTTY, takie jak dane uwierzytelniające użytkownika lub inne informacje, musisz użyć -t lub - -tls opcja włączająca TLS/SSL w sesji:

GoTTY domyślnie odczyta plik certyfikatu ~/.gotty.crt i plik klucza ~/.gotty.key, dlatego też zacznij od utworzenia również certyfikatu z podpisem własnym jako plik klucza za pomocą poniższego polecenia openssl (odpowiedz na pytanie zadane w celu wygenerowania plików certyfikatu i kluczy):

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

Następnie korzystaj z GoTTY w bezpieczny sposób z włączonym SSL/TLS w następujący sposób:

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

Udostępnij swój terminal wielu klientom

Możesz użyć multiplekserów terminali do współdzielenia pojedynczego procesu z wieloma klientami. Poniższe polecenie uruchomi nową sesję tmux o nazwie gotty z poleceniem spojrzenia (upewnij się, że masz zainstalowany tmux):

gotty tmux new -A -s gotty glances 

Aby odczytać inny plik konfiguracyjny, użyj opcji –config „/path/to/file” w następujący sposób:

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

Aby wyświetlić wersję GoTTY, uruchom polecenie:

gotty -v 

Odwiedź repozytorium GoTTY GitHub, aby znaleźć więcej przykładów użycia: https://github.com/yudai/gotty

To wszystko! Czy próbowałeś tego? Jak znaleźć GoTTY? Podziel się z nami swoimi przemyśleniami za pomocą poniższego formularza opinii.