GoTTY-Linux 터미널 (TTY)을 웹 애플리케이션으로 공유
GoTTY는 터미널 (TTY)을 웹 애플리케이션으로 공유 할 수있는 간단한 GoLang 기반 명령 줄 도구입니다. 명령 줄 도구를 웹 애플리케이션으로 전환합니다.
Chrome OS의 터미널 에뮬레이터 (hterm)를 사용하여 웹 브라우저에서 JavaScript 기반 터미널을 실행합니다. 그리고 중요한 것은 GoTTY가 기본적으로 TTY에서 클라이언트로 출력을 전송하고 클라이언트에서 입력을 수신 (즉, 클라이언트의 입력이 허용되는 경우)하여 TTY로 전달하는 웹 소켓 서버를 실행한다는 것입니다.
아키텍처 (hterm + 웹 소켓 아이디어)는 HTTP 및 HTTPS를 통해 터미널을 활성화하는 Wetty 프로그램에서 영감을 받았습니다.
GoTTY를 실행하려면 Linux에 GoLang (Go Programming Language) 환경이 설치되어 있어야합니다.
Linux 시스템에 GoTTY를 설치하는 방법
이미 작동하는 GoLang 환경이있는 경우 아래의 go get 명령을 실행하여 설치하십시오.
# go get github.com/yudai/gotty
위의 명령은 GOBIN 환경 변수에 GoTTY 바이너리를 설치합니다.이 경우인지 확인하십시오.
# ls $GOPATH/bin/

Linux에서 GoTTY를 사용하는 방법
이를 실행하려면 다음과 같이 GOBIN 환경 변수 및 명령 자동 완성 기능을 사용할 수 있습니다.
# $GOBIN/gotty
그렇지 않으면 바이너리의 전체 경로를 입력하지 않고 GoTTY 또는 다른 Go 프로그램을 실행하고 아래 내보내기 명령을 사용하여 ~/.profile
파일의 PATH에 GOBIN 변수를 추가합니다.
export PATH="$PATH:$GOBIN"
파일을 저장하고 닫습니다. 그런 다음 파일을 소싱하여 위의 변경 사항을 적용하십시오.
# source ~/.profile
GoTTY 명령을 실행하기위한 일반 구문은 다음과 같습니다.
Usage: gotty [options] <Linux command here> [<arguments...>]
이제 df 명령과 같은 명령으로 GoTTY를 실행하여 웹 브라우저에서 시스템 디스크 파티션 공간 및 사용량을 확인합니다.
# gotty df -h
GoTTY는 기본적으로 포트 8080에서 웹 서버를 시작합니다. 그런 다음 웹 브라우저에서 URL : http://127.0.0.1:8080/
를 열면 마치 터미널에서 실행중인 것처럼 실행중인 명령이 표시됩니다.

Linux에서 GoTTY를 사용자 정의하는 방법
프로필 파일 ~/.gotty
에서 기본 옵션과 터미널 (hterm)을 변경할 수 있으며, 존재하는 경우 기본적으로이 파일을로드합니다.
이것은 gotty 명령으로 읽는 기본 사용자 화 파일이므로 다음과 같이 작성하십시오.
# touch ~/.gotty
예를 들어 GoTTY를 사용자 지정하려면 구성 옵션에 대한 고유 한 유효한 값 (여기에서 모든 구성 옵션 찾기)을 설정합니다.
// 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)" }
명령 줄에서 -index
옵션을 사용하여 고유 한 index.html 파일을 설정할 수 있습니다.
# gotty --index /path/to/index.html uptime
GoTTY에서 보안 기능을 사용하는 방법
GoTTY는 기본적으로 안정적인 보안을 제공하지 않으므로 아래에 설명 된 특정 보안 기능을 수동으로 사용해야합니다.
기본적으로 GoTTY는 클라이언트가 TTY에 입력을 입력하는 것을 허용하지 않으며 창 크기 조정 만 활성화합니다.
그러나 -w
또는 -permit-write
옵션을 사용하여 클라이언트가 TTY에 쓸 수 있도록 허용 할 수 있습니다. 이는 서버에 대한 보안 위협으로 인해 권장되지 않습니다.
다음 명령은 vi 명령 줄 편집기를 사용하여 웹 브라우저에서 편집 할 fossmint.txt 파일을 엽니 다.
# gotty -w vi fossmint.txt
다음은 웹 브라우저에서 볼 수있는 vi 인터페이스입니다 (일반적으로 여기에서 vi 명령 사용).

클라이언트가 GoTTY 서버에 연결하기 위해 지정된 사용자 이름과 암호를 입력해야하는 기본 인증 메커니즘을 활성화하십시오.
아래 명령은 -c
옵션을 사용하여 사용자에게 지정된 자격 증명을 요청하는 클라이언트 액세스를 제한합니다 (사용자 이름 : 테스트 및 암호 : @ 67890).
# gotty -w -p "9000" -c "test:@67890" glances

서버에 대한 액세스를 제한하는 또 다른 방법은 -r
옵션을 사용하는 것입니다. 여기서 GoTTY는 URL을 아는 사용자 만 서버에 액세스 할 수 있도록 임의의 URL을 생성합니다.
또한 –title-format“GoTTY – {{.Command}} ({{.Hostname}}) \"옵션을 사용하여 웹 브라우저 인터페이스 제목을 정의하고 glances 명령을 사용하여 시스템 모니터링 통계를 표시합니다.
# gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
다음은 웹 브라우저 인터페이스에서 볼 수있는 위 명령의 결과입니다.

기본적으로 서버와 클라이언트 간의 모든 연결은 암호화되지 않기 때문에 사용자 자격 증명이나 기타 정보와 같은 비밀 정보를 GoTTY를 통해 보낼 때 -t
또는 -를 사용해야합니다. 세션에서 TLS/SSL을 활성화하는 -tls
옵션 :
GoTTY는 기본적으로 인증서 파일 ~/.gotty.crt
및 키 파일 ~/.gotty.key
를 읽으므로 자체 서명 된 인증서도 생성하여 시작합니다. 아래 openssl 명령을 사용하여 키 파일로 (인증서 및 키 파일을 생성하기 위해 묻는 질문에 답하십시오) :
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt
그런 다음 SSL/TLS를 다음과 같이 활성화 한 상태에서 안전한 방식으로 GoTTY를 사용합니다.
# gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
여러 클라이언트와 단일 프로세스를 공유하기 위해 터미널 멀티플렉서를 사용할 수 있습니다. 다음 명령은 glances 명령으로 gotty라는 새 tmux 세션을 시작합니다 (tmux가 설치되어 있는지 확인).
# gotty tmux new -A -s gotty glances
다른 구성 파일을 읽으려면 다음과 같이 –config \"/ path/to/file\"옵션을 사용하십시오.
# gotty -tr --config "~/gotty_new_config" --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
GoTTY 버전을 표시하려면 다음 명령을 실행하십시오.
# gotty -v
더 많은 사용 예제를 찾으려면 GoTTY GitHub 저장소를 방문하십시오 : https://github.com/yudai/gotty
그게 다야! "시도해 보셨습니까? "GoTTY를 어떻게 찾습니까? "아래 피드백 양식을 통해 의견을 공유하십시오.