Поиск по сайту:

GoTTY — поделитесь своим терминалом Linux (TTY) как веб-приложением


GoTTY — это простой инструмент командной строки на базе GoLang, который позволяет вам использовать свой терминал (TTY) как веб-приложение. Он превращает инструменты командной строки в веб-приложения.

Он использует эмулятор терминала Chrome OS (hterm) для запуска терминала на основе JavaScript в веб-браузерах. И что немаловажно, GoTTY запускает сервер веб-сокетов, который в основном передает выходные данные из TTY клиентам, получает входные данные от клиентов (то есть, если входные данные от клиентов разрешены) и пересылает их. на TTY.

Читайте также: Teleconsole – поделитесь своим Linux-терминалом с друзьями

Его архитектура (идея hterm + веб-сокет) была вдохновлена программой Wetty, которая позволяет использовать терминал через HTTP и HTTPS.

Предпосылки:

Для запуска GoTTY в Linux должна быть установлена среда GoLang (Go Programming Language).

Как установить GoTTY в системах Linux

Если у вас уже есть работающая среда GoLang, выполните команду go get ниже, чтобы установить ее:

go get github.com/yudai/gotty

Приведенная выше команда установит двоичный файл GoTTY в переменную среды GOBIN. Попробуйте проверить, так ли это:

ls $GOPATH/bin/

Как использовать GoTTY в Linux

Чтобы запустить его, вы можете использовать переменную GOBIN env и функцию автозаполнения команд следующим образом:

$GOBIN/gotty

В противном случае запустите GoTTY или любую другую программу Go, не вводя полный путь к двоичному файлу, добавьте переменную GOBIN в PATH в файле ~/.profile, используя команду export ниже. :

export PATH="$PATH:$GOBIN"

Сохраните файл и закройте его. Затем создайте файл для внесения внесенных выше изменений:

source ~/.profile

Общий синтаксис для запуска команд GoTTY:

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

Теперь запустите GoTTY с помощью любой команды, например команды df, чтобы просмотреть пространство и использование разделов системного диска через веб-браузер:

gotty df -h

GoTTY по умолчанию запустит веб-сервер через порт 8080. Затем откройте URL-адрес: http://127.0.0.1:8080/ в своем веб-браузере, и вы увидите выполняемую команду, как если бы она выполнялась на вашем терминале:

Как настроить GoTTY в Linux

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

Это основной файл настроек, считываемый командами 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.html, используя параметр --index в командной строке:

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 }})», чтобы определить заголовок интерфейса веб-браузера, а команда gless используется для отображения статистики мониторинга системы. :

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

Ниже приведен результат выполнения приведенной выше команды, как видно из интерфейса веб-браузера:

Используйте GoTTY с SSL/TLS

Поскольку по умолчанию все соединения между сервером и клиентами не шифруются, когда вы отправляете секретную информацию через 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

Затем используйте GoTTY безопасным способом с включенным SSL/TLS следующим образом:

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

Поделитесь своим терминалом с несколькими клиентами

Вы можете использовать терминальные мультиплексоры для совместного использования одного процесса с несколькими клиентами. Следующая команда запустит новый сеанс tmux с именем gotty с помощью командыglas (убедитесь, что у вас установлен 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? Поделитесь с нами своими мыслями через форму обратной связи ниже.