gotty.git

command module
v0.0.0-...-41e83eb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2023 License: MIT Imports: 12 Imported by: 0

README

GoTTY - Поделитесь своим терминалом как веб-приложение

GoTTY - это простой инструмент командной строки, который превращает ваши CLI-инструменты в веб-приложения.

Screenshot

Установка

Скачать через команду:

go get https://notabug.org/aptman/GoTTY.git

Homebrew Установка

Вы можете установить GoTTY с [Homebrew] (http://brew.sh/) также.

sh $ brew install aptman/gotty

Использование

Использование: gotty [options] <command> [<arguments...>]

Запуск gotty с вашей предпочтительной командой в качестве ее аргументов (например. gotty top). По умолчанию GoTTY запускает веб-сервер в порту 8080. Откройте URL-адрес в вашем веб-браузере, и вы можете увидеть текущую команду, как будто она работает на вашем терминале.

Конфигурация

Вы можете настроить параметры по умолчанию и терминал (hterm), предоставив файл конфигурации в команду «gotty». GoTTY загружает файл профиля по умолчанию `~/.gotty, когда он существует.

`` // Слушать в порту 9000 по умолчанию port = "9000"

// Включить TSL/SSL по умолчанию enable_tls = true

htermreference / Маленький шрифт и немного более синий цвет фона background color preferences { font_size = 5 background_color = "rgb(16, 16, 32)" } ``

См. файл [.gotty] (https://github.com/yudai/gotty/blob/master/.gotty) в этом хранилище для списка вариантов конфигурации.

Варианты безопасности

По умолчанию GoTTY не позволяет клиентам отправлять какие-либо клавиатуры или команды, за исключением удаления окон. Когда вы хотите, чтобы клиенты могли написать ввод в TTY, добавьте опцию «-w». Однако принятие ввода от удаленных клиентов опасно для большинства команд. Когда вам нужно взаимодействие с TTY по некоторым причинам, подумайте о запуске GoTTY с tmux или GNU Screen и выполните свою команду на нем (подробнее см. раздел «Сотрудничество с несколькими клиентами»).

Чтобы ограничить доступ клиентов, вы можете использовать опцию -c, чтобы включить базовую аутентификацию. С этой опцией клиенты должны ввести указанное имя пользователя и пароль для подключения к серверу GoTTY. Обратите внимание, что кредентика будет передаваться между сервером и клиентами в простом тексте. Для более строгой аутентификации рассмотрим аутентификацию SSL/TLS-клиента, описанную ниже.

Вариант r - это немного более случайный способ ограничить доступ. С этой опцией GoTTY генерирует случайный URL, чтобы только люди, которые знают URL, могли получить доступ к серверу.

Весь трафик между сервером и клиентами НЕ зашифрован по умолчанию. При отправке секретной информации через GoTTY мы настоятельно рекомендуем вам использовать опцию -t, которая позволяет TLS/SSL на сессии. По умолчанию GoTTY загружает корт и ключевые файлы, размещенные на ~/.gotty.crt и ~/.gotty.key. Вы можете переписать эти файловые пути с помощью опций -tls-crt и -tls-key. Когда вам нужно создать самоподписанный файл сертификации, вы можете использовать команду opensl.

sh opensl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt

(NOTE: Для Safari пользователей, смотрите [how to enable self-signed certificates for WebSockets] (http://blog.marcon.me/post/24874118286/secure-websockets-safari) при использовании самоподписываемых сертификатов)

Для дополнительной безопасности вы можете использовать аутентификацию SSL/TLS-клиента, предоставляя файл сертификата CA на опцию -tls-ca-crt (этот параметр требует -t или -

Обмен с несколькими клиентами

GoTTY запускает новый процесс с данной командой, когда новый клиент подключается к серверу. Это означает, что пользователи не могут делиться одним терминалом с другими по умолчанию. Тем не менее, вы можете использовать терминальные мультиплексеры для обмена одним процессом с несколькими клиентами.

Например, вы можете начать новую сессию tmux под названием gotty с командой top ниже.

sh $ gotty tmux new -A -s gotty top

Эта команда не позволяет клиентам отправлять клавиатуры, однако вы можете прикрепить сеанс с вашего локального терминала и запустить операции, такие как переключение режима команды top. Чтобы подключиться к сеансу tmux из вашего терминала, вы можете использовать следующую команду.

sh $ tmux new - A -s gotty

Используя терминальные мультиплексеры, вы можете контролировать свой терминал и позволить клиентам просто увидеть ваш экран.

Игра с Docker

Когда вы хотите создать запертую среду для каждого клиента, вы можете использовать контейнеры Docker:

sh $ gotty -w docker run -it -rm

Развитие

Вы можете построить бинарный с использованием следующих команд. Windows сейчас не поддерживается. go1.9 требуется.

# Установка инструментов
go get github.com/jteeuwen/go-bindata/...
go get github.com/tools/godep

# Строить
сделать

Для создания фронтендной части (JS-файлы и другие статические файлы) необходимо npm.

Альтернативы

Клиент командной строки
Terminal/SSH на веб-браузерах

[Secure Shell (Chrome App)] (https://chrome.google.com/webstore/detail/secure-shell/pnhechapfaindjhompbnflcldabbghjo): Если вы пользователь хрома и нуждаетесь в «настоящем» клиенте SSH в вашем веб-браузере, возможно, приложение Secure Shell - это то, что вы хотите. [Wetty] (https://github.com/krishnasrinivas/wetty): Веб-терминал на основе узла (SSH/login) [ttyd] (https://tsl0922.github.io/ttyd): C порт GoTTY с поддержкой CJK и IME

Terminal Sharing

(http://tmate.io/): Forked-Tmux based Terminal-Terminal sharing [termshare] (https://termsha.re): Terminal-Terminal sharing through a HTTP-сервер

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
localcommand
Package localcommand provides an implementation of webtty.Slave that launches a local command with a PTY.
Package localcommand provides an implementation of webtty.Slave that launches a local command with a PTY.
pkg
Package webtty provides a protocl and an implementation to controll terminals thorough networks.
Package webtty provides a protocl and an implementation to controll terminals thorough networks.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL