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.