このプロジェクトについて
Eternal Terminal (ET)は、ネットワーク障害を乗り越えるリモートシェルのクライアント・サーバーシステムです。通常のSSHとは異なり、接続が切断されると自動的に再接続し、ユーザーが中断した正確な場所からセッションを復元します。コマンドの中断や出力の損失はありません。
### 仕組み
ETは3つのコンポーネントを使用します:
- **`et`**(クライアント):ローカルマシンで実行されます。SSHで認証し、その後TCPポート2022で永続的なET接続に切り替えます。
- **`etserver`**(サーバーデーモン):リモートホストでシステムサービス(通常はroot管理)として実行されます。クライアント接続を受け入れ、正しいユーザーセッションにルーティングします。
- **`etterminal`**(サーバーサイドヘルパー):`et`によってSSH経由で起動されます。実際のターミナルセッションをホストし、FIFOを介して`etserver`に登録します。
### 主な機能
- **自動再接続**:ネットワークの瞬断、WiFiの切り替え、VPNの切断でもセッションは終了しません。
- **SSHベースの認証**:既存のSSHキーと設定を活用して安全な認証を行います。
- **ポートフォワーディング**:ローカルおよびリモートのポートフォワーディング用に`-t`フラグをサポートします。
- **ジャンプホストサポート**:`--jumphost`と`--jport`を使用して中間ホスト経由で接続します。
- **HTMマルチプレクサ**:バンドルされたターミナルマルチプレクサ(`htm`)は、互換性のあるターミナルエミュレータでネイティブなウィンドウ、タブ、分割をサポートし、tmuxコントロールモードと統合します。
- **設定可能**:サーバー設定は`/etc/et.cfg`(ポート、バインドアドレスなど)にあります。
### インストール
プリビルドパッケージはmacOS(Homebrew、MacPorts)、Ubuntu/Debian(PPAおよび公式debリポジトリ)、Fedora、CentOS 8+、FreeBSD、openSUSE、NixOSで利用可能です。WindowsはWSLを介してサポートされています。ソースからのビルドもDebian/Ubuntu、CentOS 7、macOS向けに文書化されています。
### 使用方法
```bash
et hostname # デフォルトポート2022、現在のユーザー名
et user@hostname:8000 # カスタムポート
et hostname --jumphost jump # ジャンプホスト経由
```
ETはユーザー固有およびシステム全体のSSH設定ファイルの両方を読み取ります。周囲のSSH設定から分離するには絶対パスで`--ssh-config`を渡すか、完全に無効にするには`--no-ssh-config`を使用します。
### プロトコルドキュメント
詳細なプロトコルとHTM設計のドキュメントは、リポジトリの`docs/`にあります。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.