このガイドでは、TermPairとは何か、その仕組み、およびLinuxでTermPairを使用してエンドツーエンド暗号化を使用してWebブラウザーからリアルタイムで端末を共有および制御する方法について説明します。
TermPairとは何ですか?
TermPair は、誰でもWebブラウザからリアルタイムでターミナルセッションを表示および制御できるようにするWebサービスです。簡単に言えば、人々がリアルタイムでコラボレーション、表示、共有できるようにします。
TermPairを使用すると、ターミナルをWebとすばやく、簡単に、そして安全に共有し、インターネット対応デバイスからアクセスしたり、制御したりできます。
TermPairはAES-GCM
を使用します 128 bit
エンドツーエンドの暗号化。これにより、すべてのターミナルデータがクライアントとWebブラウザ間で安全に転送されます。 TermPairサーバーもサードパーティも送信されたデータを読み取ることはできません。
完全に無料で使用でき、TermPairのソースコードはGitHubで公開されています。 TermPairは、Python、およびCSS、HTML、JavaScriptなどのWebテクノロジーを使用して記述されています。
TermPairの仕組み
TermPairは、次のコンポーネントで構成されています。
- TermPairサーバー
- Unixターミナルクライアント(システム)、
- Webブラウザ。
データ送信は、以下に説明するように、ターミナルクライアントとブラウザの間で行われます。
1.まず、termpair serve
を使用してTermPairサーバーを起動します 私たちのシステムからのコマンド。 TermPairサーバーは、ターミナルとブラウザ間のルーターとして機能します。ターミナルクライアントと接続されたブラウザ間で暗号化されたデータを送信します。
2. TermPairサーバーは、Unixターミナルクライアントからのtermpair WebSocket接続をリッスンし、接続されているすべてのブラウザーへのマッピングを維持します。
3. Unixターミナルクライアントでは、疑似端末(pty
)プロセスは新しいシェルで開始され、暗号化キーがユーザーのシステムで生成されます。
4.暗号化キーが生成された後、新しいクライアントセッションが一意のセッションIDでTermPairサーバーに登録されます。
5.次に、すべてのpty
IOは秘密鍵を使用して暗号化されるため、TermPairサーバーはそれを読み取ることができません。端末データを暗号化した後、WebSocketを介してTermPairサーバーに共有され、さらにルーティングされます。
6. TermPairサーバーは、暗号化された端末データを受信し、WebSocketを介してブラウザーに送信します。 TermPairサーバーは秘密鍵を受け取らないことに注意してください。暗号化されたデータのみを受信します。
7.ブラウザは、URLの一部を介して秘密暗号化キーを取得します。秘密鍵を含むURLハッシュは、TermPairサーバーに公開されません。
8.ブラウザが暗号化されたデータを受信すると、秘密鍵を使用してそれらを復号化し、最終的にブラウザにターミナル出力を表示します。
9.同様に、データがブラウザから端末に送信されるとき、データは秘密鍵を使用して暗号化され、TermPairサーバーに転送されます。
10.サーバーは暗号化されたデータを受信し、データをターミナルに送り返します。データはターミナルの秘密鍵を使用して復号化され、最終的に標準出力に表示されます。
これは、ターミナルクライアント、TermPairサーバー、およびWebブラウザ間でデータ転送が行われる方法です。すべてのデータは暗号化され、あるポイントから別のポイントに安全に送信されます。
TermPairは、bash
などのすべてのシェルで機能します 、zsh
vim
などのプログラムで動作します 、emacs
、tmux
、ssh
など
警告
TermPairは、リアルタイムでコラボレーションしたい人に適しています。また、いくつかのセキュリティの抜け穴があります。注意しないと、壊滅的な間違いになる可能性があります。
公共の場所でこれを試してはいけません。誰かが共有可能なURLを見て、システムの制御を取得しようとする可能性があります。さらに重要なことは、誰かがあなたのターミナルを制御できるようにすると、誰かが何ができるかを知っておく必要があります。
TermPair共有可能ID(URL)を持っている人は誰でも、sudo
を知っていれば、次のことができます。 パスワード。 root
でセッションを開始した場合 ユーザー、それは非常に危険です!
- 端末から出力されたすべての文字を表示できます。
- 任意のコマンドを実行します
- ファイルシステム全体にアクセスします
- システム内のすべてのデータを表示します
- すべてのデータを削除します
- システムを再起動またはシャットダウンします。
- マルウェアまたはウイルスをインストールします
- そして何でも、すべて!
閉じた信頼できるネットワークを使用している場合、またはローカルシステムでテストする場合は、先に進んでください。害はありません。
LinuxにTermPairをインストールする
TermPairを機能させるには、 Python 3.6+を備えたLinuxシステムが必要です。 インストールされています。
pipx
を使用してLinuxにTermPairをインストールします またはpip
以下のようなパッケージマネージャー:
$ pipx install termpair
または、
$ pip install termpair
TermPairをインストールせずに実行することもできます:
サーブ:
$ pipx run termpair serve
次に共有します:
$ pipx run termpair share --open-browser
TermPairを使用してWebブラウザからリアルタイムで端末を共有および制御する
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セッションIDが生成されます。
3. Webブラウザーを開き、アドレスバーに表示されているセッションIDをコピーして貼り付けます。
これで、ターミナルに入力したものはすべてブラウザに表示され、その逆も同様です。意味-ブラウザまたはターミナルのいずれかでコマンドを入力できます。入力と出力は両方のウィンドウに表示されます。これにより、セッションIDを持つすべてのユーザーを完全に制御できます。
ターミナル共有を終了するには、ターミナルを閉じるか、exit
と入力します。 ENTER
を押します 。ターミナル共有を停止した後、TermPairが開始されているターミナルに移動し、CTRL+C
を押します。 終了します。
4.完全な制御を与えたくない場合は、--no-browser-control
を使用できます。 、または-n
オプション。
TermPairサーバーが起動していることを確認し、以下のように読み取り専用モードでターミナル共有を開始します。
$ termpair serve
$ termpair share --host "http://localhost/" --port 8000 -n
読み取り専用モードでは、ブラウザでコマンドを実行することはできませんが、ターミナルで印刷されたものを表示するだけです。ターミナルを制御できる人とできない人を決めることができます。
5.デフォルトでは、TermPairサーバーはポート8000
で実行されます 。他の任意のポートを選択することもできます。たとえば、次のコマンドは、ポート8080
でTermPairサーバーを実行します。 。
$ termpair share --host "http://localhost/" --port 8080
6.共有を開始した後にWebブラウザーを自動的に開く場合は、--open-browser
を使用します。 、または-b
オプション。
$ termpair share --host "http://localhost/" --port 8000 -b
このコマンドを使用する前に、termpairサーバーが実行されている必要があることに注意してください。
7.ヘルプセクションを表示するには、次を実行します。
$ termpair serve --help
$ termpair share --help
結論
TermPairは、ターミナルセッションを面倒なことなく誰とでも共有できるように支援します。コードについてサポートが必要な場合に使用できます。ターミナルは、信頼できる友人や同僚と共有できます。彼らはどこからでもあなたのターミナルセッションを即座に表示してアクセスし、可能な限りあなたを支援することができます。
すでに述べたように、端末を共有するときも注意する必要があります。それがどのように機能するかを理解していない場合は、このツールの使用を避けることをお勧めします。