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
What is TermPair?
TermPair lets developers securely share and control terminals in real time.
Usage
Start the TermPair server:
>> 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
--------------------------------------------------------------------------------
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. Even if you aren't on an https
connection, your data is still secure.
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.
Installation
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
You can also 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file termpair-0.0.1.0.tar.gz
.
File metadata
- Download URL: termpair-0.0.1.0.tar.gz
- Upload date:
- Size: 486.6 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a58356547273b014ba12b879099121d1f7eda0dc4f99044c0c72fa1214555ae3 |
|
MD5 | e878a839aa1a7fa88eec8c2c04d5852b |
|
BLAKE2b-256 | adfcaa1873dab4e99f81a9529f3dbd324494548be05bbd1700eba132f3ad7d17 |
File details
Details for the file termpair-0.0.1.0-py3-none-any.whl
.
File metadata
- Download URL: termpair-0.0.1.0-py3-none-any.whl
- Upload date:
- Size: 492.8 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5e30ed4c428c563741a5a6bc522e2cf1181e2448d9b97512959925373aba037 |
|
MD5 | 5509984fc1cda2588ad9f32bbf55cf1b |
|
BLAKE2b-256 | 18f1a3a6cc99eecbbd7ce7f97e5c0fb0745dc6a89fa3c453ad9ef3d065b8ea61 |