Skip to main content

View and control remote terminals from your browser with end-to-end encryption

Project description

View and control remote terminals from your browser with end-to-end encryption

Documentation: https://cs01.github.io/termpair

Source Code: https://github.com/cs01/termpair

Try It: https://grassfedcode.com/termpair

PyPI version

What is TermPair?

TermPair lets developers securely share and control terminals in real time.

Usage

Start the TermPair server, or use the one already running at https://grassfedcode.com/termpair.

>> termpair serve
INFO:     Started server process [15455]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)
INFO:     ('127.0.0.1', 35470) - "WebSocket /connect_to_terminal" [accepted]

Then share your terminal by running:

>> termpair share --port 8000
--------------------------------------------------------------------------------
Running '/bin/bash' and sharing to 'http://localhost:8000/?terminal_id=b26903e19ffff2bc9ace60491e8200d5'.
Type 'exit' or close terminal to stop sharing.
--------------------------------------------------------------------------------

You can share that URL with whoever you want. Note that anyone that has it can view and possibly control your terminal.

The server multicasts terminal output to all browsers that connect to the session.

Security

Termpair uses AES-GCM 128 bit end-to-end encryption for all terminal input and output.

How it Works

Before termpair sends terminal output to the server, it encrypts it using a secret key so the server cannot read it. The server forwards that data to connected browsers. When the browsers receive the data, they use the secret key to decrypt and display the terminal output.

Likewise, when a browser sends input to the terminal, it is encrypted in the browser, forwarded from the server to the terminal, then decrypted in the terminal by termpair and written to the terminal's input. The secret key is generated by termpair and embedded in a part of the url that is not sent to the server.

Run With Latest Version

Use pipx to run the latest version without installing:

Serve:

>> pipx run termpair serve

Then share:

>> pipx run termpair share -b  # -b flag opens the browser automatically

Installation

You can install using pipx or pip:

>> pipx install termpair

or

>> pip install termpair

API

To view the command line API reference, run:

>> termpair --help

System Requirements

Python: 3.6+

Operating System:

  • To view/control from the browser: All operating systems are supported.
  • To run the server, termpair serve: Tested on Linux. Should work on macOS. Might work on Windows.
  • To share your terminal, termpair share: Tested on Linux. Should work on macOS. Probably doesn't work on Windows.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

termpair-0.1.0.0b0.tar.gz (524.7 kB view details)

Uploaded Source

Built Distribution

termpair-0.1.0.0b0-py3-none-any.whl (532.1 kB view details)

Uploaded Python 3

File details

Details for the file termpair-0.1.0.0b0.tar.gz.

File metadata

  • Download URL: termpair-0.1.0.0b0.tar.gz
  • Upload date:
  • Size: 524.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for termpair-0.1.0.0b0.tar.gz
Algorithm Hash digest
SHA256 92c18ee0b27f9b15c269ad256a6f6fe79153deb39785e2c72485a9ed63c15b73
MD5 f5d602deb6827bb16faac4ba0c9bb7b2
BLAKE2b-256 5a319e73c73723f9f2aa7abd961fc4954a3bb84107927813d379b8422c351360

See more details on using hashes here.

File details

Details for the file termpair-0.1.0.0b0-py3-none-any.whl.

File metadata

  • Download URL: termpair-0.1.0.0b0-py3-none-any.whl
  • Upload date:
  • Size: 532.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for termpair-0.1.0.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 69fde9dce304a29044ce6bb73a3d99ed52791a55bab457d47b57e92f28ba375c
MD5 026ecb3f0615f21bb2368de91e465b8a
BLAKE2b-256 4dddf9563e8ef318b68531f507fb4504a8a0fd12e0a71e05ec0f9ecbfb9a6526

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page