GitHub — sorenisanerd / gotty на webdesignernews.com

Со страницы выпуска

Вы можете загрузить последний стабильный двоичный файл со страницы Releases. Обратите внимание, что выпуск с пометкой Предварительный выпуск создан для целей тестирования, которое может включать нестабильные или критические изменения. Загрузите выпуск с пометкой «Последний выпуск» для стабильной сборки.

(Файлы с именем darwin_amd64 предназначены для пользователей Mac OS X)

Установка Homebrew

Вы также можете установить GoTTY с Homebrew.

 $ brew install sorenisanerd / gotty / gotty 

получить Установка (разработка)

Если у вас есть языковая среда Go, вы можете установить GoTTY с помощью команды go get . Однако эта команда создает двоичный файл из последней основной ветки, которая может включать нестабильные или критические изменения. GoTTY требует go1.9 или более поздней версии.

 $ go get github.com/sorenisanerd/gotty[19459013visible
<div class = "snippet-clipboard-content относительно позиции" data-snippet-clipboard-copy-content = "Использование: gotty [options] [] ">
  Использование: gotty [options]  []
 

Запустите gotty указав предпочитаемую команду в качестве аргументов (например, gotty top ).

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

Параметры

 - значение адреса, -значение IP-адреса для прослушивания (по умолчанию:   « 0.0.0.0 »  ) [ $ GOTTY_ADDRESS ]
   --port value, -p value Номер порта для liten (по умолчанию:   « 8080 »  ) [ $ GOTTY_PORT ]
   --path значение, -m значение Базовый путь (по умолчанию:   « / »  ) [ $ GOTTY_PATH ]
   --permit-write, -w Разрешить клиентам писать в TTY (БУДЬТЕ ОСТОРОЖНЫ) (по умолчанию: false) [ $ GOTTY_PERMIT_WRITE ]
   --credential value, -c value Credential  for  Basic Authentication (ex: user: pass, default disabled) [ $ GOTTY_CREDENTIAL ]
   --random-url, -r Добавить случайную строку к URL-адресу (по умолчанию: false) [ $ GOTTY_RANDOM_URL ]
   --random-url-length значение Случайная длина URL (по умолчанию: 8) [ $ GOTTY_RANDOM_URL_LENGTH ]
   --tls, -t Включить TLS / SSL (по умолчанию: false) [ $ GOTTY_TLS ]
   --tls-crt значение Путь к файлу сертификата TLS / SSL (по умолчанию:   « ~ / .gotty.crt »  ) [ $ GOTTY_TLS_CRT ]
   --tls-key значение Путь к файлу ключей TLS / SSL (по умолчанию:   « ~ / .gotty.key »  ) [ $ GOTTY_TLS_KEY ]
   --tls-ca-crt значение Файл сертификата TLS / SSL CA  для  сертификатов клиентов (по умолчанию:   " ~ / .gotty.ca.crt "  ] ) [ $ GOTTY_TLS_CA_CRT ]
   --index значение Пользовательский файл index.html [ $ GOTTY_INDEX ]
   --title-format value Формат заголовка окна браузера (по умолчанию:   " {{.command}} @ {{.hostname}} "  ) [ $ GOTTY_TITLE_FORMAT ]
   --reconnect Включить повторное подключение (по умолчанию: false) [ $ GOTTY_RECONNECT ]
   --reconnect-time значение Время повторного подключения (по умолчанию: 10) [ $ GOTTY_RECONNECT_TIME ]
   --max-connection value Максимальное соединение с gotty (по умолчанию: 0) [ $ GOTTY_MAX_CONNECTION ]
   --once Принимать только одного клиента и  выходить из  при отключении (по умолчанию: false) [ $ GOTTY_ONCE ]
   --timeout значение Время ожидания в секундах  для  ожидания клиента (0 для отключения) (по умолчанию: 0) [ $ GOTTY_TIMEOUT ]
   --permit-arguments Разрешить клиентам отправлять  команду  строковые аргументы  в  URL (например, http://example.com:8080/?arg=AAA ] &  arg = BBB) (по умолчанию: false) [ $ GOTTY_PERMIT_ARGUMENTS ]
   --width значение Статическая ширина экрана, 0 (по умолчанию) означает динамическое изменение размера (по умолчанию: 0) [ $ GOTTY_WIDTH ]
   --height значение Статическая высота экрана, 0 (по умолчанию) означает динамическое изменение размера (по умолчанию: 0) [ $ GOTTY_HEIGHT ]
   --ws-origin значение Регулярное выражение, которое соответствует исходным URL-адресам, принимаемым WebSocket. Запросы на другое происхождение по умолчанию недопустимы [ $ GOTTY_WS_ORIGIN ]
   --term value Имя терминала для использования в браузере, одно из xterm или hterm. (по умолчанию:   « xterm »  ) [ $ GOTTY_TERM ]
   --enable-webgl Включить средство визуализации WebGL (по умолчанию: false) [ $ GOTTY_ENABLE_WEBGL ]
   --close-signal value Сигнал, отправляемый процессу  command когда gotty закрывает его (по умолчанию: SIGHUP) (по умолчанию: 1) [ $ GOTTY_CLOSE_SIGNAL ]
   --close-timeout значение Время  в  секундах для принудительного  уничтожения  процесса после отключения клиента (по умолчанию: -1) (по умолчанию: -1) [ $ GOTTY_CLOSE_TIMEOUT  ]
   --config значение Путь к файлу конфигурации (по умолчанию:   " ~ / .gotty "  ) [ $ GOTTY_CONFIG ]
   --help, -h show  help  (по умолчанию: false)
   --version, -v распечатать версию (по умолчанию: false) 

Файл конфигурации

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

  // По умолчанию слушаем порт 9000
порт = "9000"

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

// настройки hterm
// Меньший шрифт и немного более синий цвет фона
предпочтения {
    font_size = 5
    background_color = "rgb (16, 16, 32)"
}
 

Список параметров конфигурации см. В файле .gotty в этом репозитории.

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

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

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

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

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

 openssl req -x509 -nodes -days 9999 -newkey rsa: 2048 -keyout  ~  /. Gotty.key -out  ~  /. Gotty.crt 

(ПРИМЕЧАНИЕ. Для Safari см., Как включить самозаверяющие сертификаты для WebSockets при использовании самозаверяющих сертификатов)

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

Совместное использование с несколькими клиентами

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

Экран

После установки экрана GNU запустите новый сеанс с помощью screen -S name-for-session и подключитесь к нему с помощью gotty в другом окне / вкладке терминала через screen -x name-for- сессия . Все команды и действия, выполняемые в первой вкладке / окне терминала, теперь будут транслироваться с помощью gotty.

Tmux

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

 $ gotty tmux new -A -s gotty top 

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

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

Быстрый обмен через tmux

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

  # Запустить GoTTY в новом окне с помощью C-t
клавиша привязки C-t новое окно "gotty tmux attach -t` tmux display -p '# S'` "
 

Игра с Docker

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

 $ gotty -w docker run -it --rm busybox 

Разработка

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

   #  Установить инструменты 
перейти и получить github.com/jteeuwen/go-bindata / ...
перейти и получить github.com/tools/godep

  #  Сборка 
марка 

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

Архитектура

GoTTY использует xterm.js и hterm для запуска терминала на основе JavaScript в веб-браузерах. Сам GoTTY предоставляет сервер websocket, который просто ретранслирует вывод TTY клиентам, принимает ввод от клиентов и пересылает его TTY. Идея hterm + websocket вдохновлена ​​Wetty.

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

Клиент командной строки

  • gotty-client: если вы хотите подключиться к серверу GoTTY со своего терминала

Терминал / SSH в веб-браузерах

  • Secure Shell (приложение Chrome): если вы являетесь пользователем Chrome и вам нужен «настоящий» SSH-клиент в своем веб-браузере, возможно, вам нужно приложение Secure Shell
  • Wetty: Веб-терминал на основе узла (SSH / вход)
  • ttyd: порт C для GoTTY с поддержкой CJK и IME

Совместное использование терминала

  • tmate: Совместное использование терминала на основе Forked-Tmux
  • общие условия: совместное использование терминала и терминала через HTTP-сервер
  • tmux: сам Tmux также поддерживает совместное использование TTY через SSH)

Лицензия MIT

Спасибо этим замечательным людям (смайлики):

Этот проект соответствует спецификации всех участников. Любые пожертвования приветствуются!

Торопиться! Скидка 50% на ноутбук Dell XPS 13 Touch — лучшая сделка в День поминовения, но она не продлится долго!

Вы услышите много предложений, обсуждаемых в выходные дни распродажи в День поминовения. но такая сделка, как эта скидка 700 долларов на новый Dell XPS 13 Touch, говорит сама за себя. В Dell цена этого фантастического ноутбука (фаворита CB для цифровых креативщиков) снизилась с ошеломляющих 1499,99 долларов до доступных 799,99 долларов. И мы уверены, что это…

Как добавить фавикон на WordPress

Фавиконы — это крошечные значки, которые помогают выделить ваш сайт в поисковой выдаче или на панели закладок. Именно поэтому каждому сайту нужен фавикон. Фавикон создает первое впечатление о сайте, еще до того, как пользователь посетит его. Сайт с фавиконом выглядит более профессионально. Тот факт, что ваш сайт мгновенно выделяется среди других, — еще один плюс.…

Как UX влияет на поисковую оптимизацию сайта

Алгоритм Google учитывает пользовательский опыт. Например, Google не ранжирует каталоги, потому что отправка пользователей со страницы с 10 ссылками на страницу с 20 ссылками — плохой пользовательский опыт. Поэтому, очень правильно подходить к сайту с точки зрения UX. Тем более, это может помочь вам с SEO. Рассмотрим, каким образом UX может повлиять на ваше поисковое…

Задайте эти 5 вопросов, чтобы отсеять плохих клиентов “на берегу”

Всем нам хорошо знаком следующий сценарий… Вам звонит потенциальный клиент и договаривается о встрече. Вы тратите не менее 2 часов на подготовку, дорогу и саму встречу. Затем вы потратите еще больше времени на тщательную подготовку коммерческого предложения. А тогда происходит самое интересное. Вам никто не отвечает. Вы можете еще раз напомнить о себе. Но в…

Первый павильон Узбекистана на Венецианской биеннале указывает на проблему исчезновения местных сообществ

Полномасштабный проект дома в узбекской махалле призван подчеркнуть историческую и находящуюся под угрозой исчезновения форму сообщества в Республике Узбекистан. Павильон «Махалля: сельская городская жизнь», курируемый Эммануэлем Христом и Кристофом Гантенбайном из швейцарской компании Christ & Gantenbein и Викторией Истон, «вырос» из проекта, возглавляемого командой ETH Zurich, занимающейся исследованием и документированием маххалей – районов, основанных на…

Как дизайнеру выйти на зарубежный рынок? | by Sergey Semenov | May, 2021

На Российском рынке часто встречаются не сознательные клиенты, которые не понимают важность дизайна, тем самым занижая стоимость работ. Конечно дизайнер сам решает браться за низкооплачиваемую работу или нет, но без движения вперед не будет развития. Одно из решения проблем — выход на зарубежный рынок. Не берем в расчет биржы, на которых сильный демпинг цен и…

Последний логотип Google здесь (и опоздал всего на 10 лет)

Среди прочего, 2020 год стал годом нового логотипа Google. От Gmail до Google Maps практически все приложения и сервисы под эгидой G Suite получили новый значок — с явно неоднозначными результатами. Недавно появилось неожиданное запоздалое добавление — и это произошло всего на десять лет позже. Google Fiber, волоконно-оптический интернет-сервис компании (в настоящее время только в…

19 отличных подарков на выпускной в последнюю минуту (2021)

Amazon Smart Plug за 15 долларов (скидка 10 долларов) : Умная розетка — это просто способ управления неумными гаджетами. Вы можете подключить лампу и дистанционно включить ее, чтобы создать впечатление, будто вы дома, или использовать вилку с динамиком Alexa (или приложение для смартфона), чтобы выключить вентилятор коробки утром. Это один из наших любимых. Некоторые учетные…

Почему высмеянное искусство лондонского метро Хокни на самом деле гениально

TfL хорошо известен тем, что обогащает культурную жизнь лондонцев, предлагая искусство в метро. От красивых рекламных плакатов до стихов — вам есть чем заняться, когда вы путешествуете глубоко под землей. Теперь, когда Лондон возрождается после долгого года, проведенного внутри, в городе появились новые произведения искусства — не меньше, чем выдающийся художник Дэвид Хокни. Звучит весьма…