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

Делитесь терминалами и управляйте ими в режиме реального времени из веб-браузера

В этом руководстве объясняется, что такое TermPair, как он работает и как совместно использовать терминалы и управлять ими в режиме реального времени через веб-браузер со сквозным шифрованием с использованием TermPair в Linux.

Что такое TermPair?

TermPair — это веб-служба, которая позволяет любому просматривать и контролировать свои сеансы терминала в режиме реального времени через веб-браузер. Проще говоря, он позволяет людям сотрудничать, просматривать, делиться — и все это в режиме реального времени.

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

TermPair использует AES-GCM 128 бит сквозное шифрование, поэтому все данные Терминала безопасно передаются между клиент и веб-браузер. Ни сервер TermPair, ни третьи лица не могут прочитать передаваемые данные.

Его можно использовать совершенно бесплатно, а исходный код TermPair общедоступен на GitHub. TermPair написан с использованием Python и веб-технологий, таких как CSS, HTML и JavaScript.

Как работает TermPair?

TermPair состоит из следующих компонентов:

  • сервер TermPair,
  • Терминальный клиент Unix (ваша система),
  • Веб-браузер.

Передача данных происходит между клиентом Терминала и браузером, как описано ниже:

1. Сначала мы запускаем сервер TermPair с помощью команды termpair serve из нашей системы. Сервер TermPair действует как маршрутизатор между вашим терминалом и браузером. Он отправляет зашифрованные данные между терминальными клиентами и подключенными браузерами.

2. Сервер TermPair прослушивает соединения веб-сокетов терминальной пары от терминального клиента Unix и поддерживает сопоставление со всеми подключенными браузерами.

3. В терминальном клиенте Unix псевдотерминальный процесс (pty) запускается с новой оболочкой, и в системе пользователя генерируется ключ шифрования.

4. После генерации ключа шифрования новый сеанс клиента регистрируется на сервере TermPair с уникальным идентификатором сеанса.

5. Далее все операции ввода-вывода pty шифруются с использованием секретного ключа, поэтому сервер TermPair не может их прочитать. После шифрования данных терминала они передаются через веб-сокет на сервер TermPair для дальнейшей маршрутизации.

6. Сервер TermPair получает и отправляет зашифрованные данные терминала в браузеры через веб-сокет. Обратите внимание, что сервер TermPair не получает секретный ключ. Он получает только зашифрованные данные.

7. Браузер получает секретный ключ шифрования через часть URL-адреса. Хэш URL-адреса, содержащий секретный ключ, не будет доступен серверу TermPair.

8. Когда браузеры получают зашифрованные данные, он расшифровывает их с помощью секретного ключа и, наконец, отображает выходные данные терминала в браузере.

9. Аналогично, когда данные отправляются из браузера на терминал, они шифруются с использованием секретного ключа и пересылаются на сервер TermPair.

10. Сервер получает зашифрованные данные и отправляет их обратно в Терминал. Данные расшифровываются с помощью секретного ключа в Терминале и, наконец, отображаются в стандартном выводе.

Именно так происходит передача данных между клиентом Терминала, сервером TermPair и веб-браузером. Все данные шифруются и безопасно передаются из одной точки в другую.

TermPair работает во всех оболочках, например bash, zsh и работает с любыми программами, такими как vim, emacs, tmux, ssh и т. д.

Предостережения

TermPair хорош для тех, кто хочет сотрудничать в режиме реального времени. Он также имеет некоторые лазейки в безопасности. Если вы не будете осторожны, это может стать катастрофической ошибкой.

Никогда не пытайтесь повторить это в общественном месте. Кто-то может увидеть общий URL-адрес и попытаться получить контроль над вашей системой. Что еще более важно, вы должны осознавать, что может сделать кто-то, если вы позволите ему контролировать ваш Терминал.

Любой, у кого есть общий идентификатор (URL) TermPair, может сделать следующее, если он знает пароль sudo. Если бы вы начали сеанс с пользователем root, это было бы очень опасно!

  • Они могут просматривать каждый символ, выводимый терминалом.
  • Запускайте любые команды,
  • Доступ ко всей файловой системе,
  • Просматривайте все данные в вашей системе,
  • Удалить все данные,
  • Перезагрузите или выключите систему,
  • Установите вредоносное ПО или вирус,
  • и всё, всё!

Если вы находитесь в закрытой и надежной сети или хотите протестировать ее в своей локальной системе, продолжайте. Это не принесет никакого вреда.

Установите TermPair в Linux

Чтобы TermPair работал, у вас должна быть установлена система Linux с установленным Python 3.6+.

Установите TermPair в Linux с помощью менеджеров пакетов pipx или pip, как показано ниже:

pipx install termpair

Или,

pip install termpair

Вы также можете запустить TermPair без его установки:

Служить :

pipx run termpair serve

Тогда поделитесь:

pipx run termpair share --open-browser

Делитесь терминалами и управляйте ими в режиме реального времени из веб-браузера с помощью TermPair.

1. Запустите сервер TermPair с помощью команды:

termpair serve

Пример вывода:

 INFO:     Started server process [19084]
 INFO:     Waiting for application startup.
 INFO:     Application startup complete.
 INFO:     Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)

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

2. Откройте новое окно или вкладку Терминала и выполните следующую команду, чтобы поделиться своим Терминалом:

termpair share --host "http://localhost/" --port 8000

Пример вывода:

 Connection established with end-to-end encryption ?
 Sharing '/bin/bash' at
 http://localhost:8000/?terminal_id=0a8cxxxxxxxxxx1234x*&
 Type 'exit' or close terminal to stop sharing.

Уникальный идентификатор сеанса TermPair будет сгенерирован, как показано выше.

3. Откройте веб-браузер и скопируйте/вставьте идентификатор сеанса, показанный в адресной строке.

Делитесь терминалами и управляйте ими из веб-браузера в режиме реального времени с помощью TermPair.

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

Чтобы выйти из общего доступа к терминалу, просто закройте терминал или введите exit и нажмите ENTER. После прекращения совместного использования терминала перейдите к терминалу, где запущена TermPair, и нажмите CTRL+C, чтобы выйти из него.

4. Если вы не хотите предоставлять полный контроль, вы можете использовать опцию --no-browser-control или -n.

Убедитесь, что сервер TermPair запущен, и запустите общий доступ к терминалу в режиме только для чтения, как показано ниже.

termpair serve
termpair share --host "http://localhost/" --port 8000 -n

В режиме только для чтения они не могут запускать какие-либо команды в браузере, а только просматривать то, что напечатано в терминале. Вы можете решить, кто может, а кто не может управлять вашим терминалом.

5. По умолчанию сервер TermPair будет работать на порту 8000. Вы также можете выбрать любой другой порт по вашему выбору. Например, следующая команда запускает сервер TermPair на порту 8080.

termpair share --host "http://localhost/" --port 8080

6. Если вы хотите автоматически открывать веб-браузер после начала общего доступа, используйте параметр --open-browser или -b.

termpair share --host "http://localhost/" --port 8000 -b

Помните, что сервер терминальных пар должен быть запущен перед использованием этой команды.

7. Чтобы отобразить раздел справки, запустите:

termpair serve --help
termpair share --help

Заключение

TermPair помогает нам без особых хлопот делиться вашими сеансами терминала с кем угодно. Вы можете использовать его, когда вам нужна помощь с вашим кодом. Вы можете поделиться Терминалом со своим надежным другом или коллегой. Они могут мгновенно просмотреть и получить доступ к вашему терминальному сеансу из любого места и помочь вам любым возможным способом.

Как уже говорилось, вы также должны быть осторожны при совместном использовании своего терминала. Если вы не понимаете, как это работает, вероятно, лучше избегать использования этого инструмента.

Ресурс:

  • Репозиторий TermPair на GitHub

Связанное чтение:

  • Как опубликовать свой терминал в Интернете с помощью Streamhut
  • Tmate - мгновенно поделитесь своим терминалом с кем угодно и где угодно
  • Seashells - вывод результатов вашей команды Linux в Интернет в режиме реального времени

Статьи по данной тематике