웹사이트 검색

GoTTY - Linux 터미널(TTY)을 웹 애플리케이션으로 공유


GoTTY는 터미널(TTY)을 웹 애플리케이션으로 공유할 수 있는 간단한 GoLang 기반 명령줄 도구입니다. 명령줄 도구를 웹 애플리케이션으로 전환합니다.

Chrome OS의 터미널 에뮬레이터(hterm)를 사용하여 웹 브라우저에서 JavaScript 기반 터미널을 실행합니다. 그리고 중요한 것은 GoTTY는 기본적으로 TTY의 출력을 클라이언트로 전송하고 클라이언트로부터 입력을 받아(즉, 클라이언트로부터의 입력이 허용되는 경우) 이를 전달하는 웹 소켓 서버를 실행한다는 것입니다. TTY로.

추가 읽기: 텔레콘솔 – Linux 터미널을 친구들과 공유하세요

해당 아키텍처(hterm + 웹 소켓 아이디어)는 HTTPHTTPS를 통해 터미널을 활성화하는 Wetty 프로그램에서 영감을 받았습니다.

전제 조건:

GoTTY를 실행하려면 Linux에 GoLang(Go 프로그래밍 언어) 환경이 설치되어 있어야 합니다.

Linux 시스템에 GoTTY를 설치하는 방법

이미 작동 중인 GoLang 환경이 있는 경우 아래 go get 명령을 실행하여 설치하세요.

go get github.com/yudai/gotty

위 명령은 GOBIN 환경 변수에 GoTTY 바이너리를 설치합니다. 해당되는지 확인하세요.

ls $GOPATH/bin/

Linux에서 GoTTY를 사용하는 방법

이를 실행하려면 다음과 같이 GOBIN env 변수 및 명령 자동 완성 기능을 사용할 수 있습니다.

$GOBIN/gotty

그렇지 않으면 바이너리의 전체 경로를 입력하지 않고 GoTTY 또는 다른 Go 프로그램을 실행하고 아래 export 명령을 사용하여 ~/.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 사용

GoTTY 서버에 연결하려면 클라이언트가 지정된 사용자 이름과 비밀번호를 입력해야 하는 기본 인증 메커니즘을 활성화해 보세요.

아래 명령은 -c 옵션을 사용하여 사용자에게 지정된 자격 증명(사용자 이름: test 및 비밀번호: @67890)을 요청하여 클라이언트 액세스를 제한합니다.

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

Gotty 임의 URL 생성

서버에 대한 액세스를 제한하는 또 다른 방법은 -r 옵션을 사용하는 것입니다. 여기서 GoTTY는 URL을 아는 사용자만 서버에 액세스할 수 있도록 임의의 URL을 생성합니다.

또한 –title-format "GoTTY – {{ .Command }} ({{ .Hostname }})" 옵션을 사용하여 웹 브라우저 인터페이스 제목을 정의하고 glans 명령은 시스템 모니터링 통계를 표시하는 데 사용됩니다. :

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

다음은 웹 브라우저 인터페이스에서 볼 수 있는 위 명령의 결과입니다.

SSL/TLS와 함께 GoTTY 사용

기본적으로 서버와 클라이언트 간의 모든 연결은 암호화되지 않으므로 GoTTY를 통해 사용자 자격 증명이나 기타 정보와 같은 비밀 정보를 보낼 때 -t 또는 -를 사용해야 합니다. -tls 세션에서 TLS/SSL을 활성화하는 옵션:

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

여러 클라이언트와 터미널 공유

여러 클라이언트와 단일 프로세스를 공유하기 위해 터미널 멀티플렉서를 사용할 수 있습니다. 다음 명령은 glazes 명령으로 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를 어떻게 찾나요? 아래 피드백 양식을 통해 여러분의 생각을 공유해 주세요.