🐧 Совместное безопасное использование и управление терминалами в режиме реального времени из веб-браузера

Обзоры

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

Что такое TermPair?

TermPair – это веб-сервис, который позволяет любому пользователю просматривать и контролировать свои сеансы Терминала в режиме реального времени из веб-браузера.

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

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

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

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

TermPair написан с использованием Python и веб-технологий, таких как CSS, HTML и JavaScript.

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

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

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

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

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

Сервер TermPair выступает в роли маршрутизатора между вашим Терминалом и браузером.

Он отправляет зашифрованные данные между терминальными клиентами и подключенными браузерами.

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

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

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

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

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

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

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

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

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

Так происходит передача данных между Терминальным клиентом, сервером 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. Откройте веб-браузер и скопируйте/вставьте идентификатор сеанса, показанный в адресной строке.

Теперь все, что вы вводите в Терминале, появится в браузере и наоборот.

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

Ввод и вывод появятся в обоих окнах.

Это дает полный контроль любому, у кого есть идентификатор сеанса.

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

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

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

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

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

Вы сами решаете, кто может, а кто не может управлять вашим Терминалом.

5. По умолчанию сервер TermPair будет работать на порту 8000.

Вы также можете выбрать любой другой порт по вашему выбору.

Например, следующая команда запускает сервер TermPair на порту 8080.

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

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

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

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

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

$ termpair serve --help
$ termpair share --help

Заключение

TermPair помогает нам делиться сеансами с Терминалом с кем угодно без особых хлопот.

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

Вы можете поделиться Терминалом со своим надежным другом или коллегой.

Они могут мгновенно просмотреть и получить доступ к сеансу вашего терминала из любого места и помочь вам!

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

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

 

Добавить комментарий