技術仕様
Terminiデスクトップアプリの各セッションプロトコルについて、実装詳細、認証マトリクス、チャネル能力と限界を示します。項目は現行実装と一致します。使えない能力はその旨を記し、先行きの約束はしません。
SSH
クライアントは独自の SSH スタックを搭載し、システムの ssh バイナリには依存しません。接続、認証、転送はすべてアプリ内で行われ、キーストア、セッションワークスペース、運用アシスタントと、同じデバイス識別を共有します。
接続
- 既定ポートは 22。接続タイムアウトはデバイスごとに設定できます。
- プロトコル層のキープアライブを、デバイスごとに設定した間隔で送り、NAT とファイアウォールを越える長いセッションを維持します。
- セッション再利用:同じデバイスの複数ペイン(ターミナル / SFTP)が下層接続を共有し、繰り返しのハンドシェイクとログインを避けます。
認証マトリクス
- 公開鍵:OpenSSH 形式の秘密鍵。パスフレーズと証明書に対応し、キーはローカルのキーストアに保存します。PuTTY の PPK は先に OpenSSH へ変換してください。
- キーボードインタラクティブ:サーバーの対話チャレンジに答えます。
- パスワード:静的パスワード認証。
- SSH agent:システムエージェントに載っている識別を使います。Windows では Pageant にも対応します。
- 試行順は 公開鍵 → キーボードインタラクティブ → パスワード で、最初の成功で止まります。
- 限界:GSSAPI 認証はまだ使えません。
ターミナル
- ターミナル種類(TERM)はデバイスごとにカスタムできます。サイズはペインにリアルタイムで従います。
- フォントとテーマはペインごとに調整でき、検索はセッションを中断しません。
ポート転送
- ローカル転送:ローカルポートを対象ネットワーク内のサービスへ安全につなぎます(-L の意味)。
- リモート転送:リモートポートをこちらへ戻し、逆方向の障害対応に使います(-R の意味)。
- ダイナミック転送:手元に SOCKS5 プロキシを開き、トラフィックは対象ホストから出ます(-D の意味)。
- 転送ルールはターミナルセッションから独立して管理でき、いつでも開始と停止ができ、状態(アイドル / 実行中 / エラー)が見えます。
Telnet
自前の Telnet スタックです。ネットワーク機器とレガシーシステム向けに、完全なオプション交渉とセッション適応を備え、スクリプトとアシスタントが安定して実行できます。
オプション交渉
- BINARY:バイナリ伝送モード。
- ECHO:エコー制御(サーバー側エコーを受けます)。
- SGA:Go-Ahead を抑え、全二重の対話にします。
- TTYPE:ターミナル種類の報告。候補リストは設定できます。
- NAWS:ウィンドウサイズの交渉。ペインのリサイズはデバイスへリアルタイムで同期します。
- EOR:レコード終端の印。
- 交渉は接続確立中に終わり、最初のデータパケットを待ちません。
セッション適応
- ログインプロンプト検出:ユーザー名 / パスワードのプロンプトを自動で合わせ、スクリプトとアシスタントのログインを安定させます。
- ページング:機器のページ分割出力を検出し、自動で送ります。長い出力は途切れません。
- 行末(NVT EOL)とコマンドエコー検証は設定でき、ベンダー差に合わせられます。
キープアライブと限界
- 二層のキープアライブ:TCP keepalive に加え、プロトコル層の NOP ハートビート。
- 限界:文字セット交渉(RFC 2066)はまだ使えません。
RDP
自前の RDP スタックです。映像級のデコードと描画パイプラインを持ち、グラフィカルデスクトップはターミナルセッションと同じワークスペースで扱います。
セキュリティ層と認証
- セキュリティ層:自動交渉 / TLS / NLA。
- NLA:CredSSP 上のネットワークレベル認証。Kerberos に対応します。
- RDSTLS:リダイレクト場面での RDSTLS 認証。
- Azure AD:AAD 参加ホスト向け。ブラウザ OAuth でログインします。
- ドメインアカウントでログインできます。自己署名証明書は明示的に信頼できます。
表示と入力
- 解像度は固定、またはウィンドウに従う。色深度は 16 / 24 / 32 ビット。
- フレームコーデックはサーバーと交渉:H.264 / AVC444 / WebP / PNG / JPEG / RAW。
- キーボード配列は設定できます。入力はスキャンコードと Unicode の両チャネルを通り、修飾キー状態はリアルタイムで同期します。
- マウスの移動、ボタン、ホイールを完全に対応。リモートのカーソル形状は描画に従います。
- 壁紙やスムージングなどリモート効果を切る性能フラグを設定でき、滑らかさを優先できます。
- 全画面:Ctrl+Alt+Pause で全画面を抜け、Ctrl+Alt+Home で接続バーを表示します。
チャネル
- クリップボード(CLIPRDR):テキスト、ファイル、HTML、画像の双方向。
- ドライブのリダイレクト(RDPDR):ローカルフォルダをリモートの Explorer へマップします。
- 音声(RDPSND):リモート音声を手元で再生します。
セッション
- コンソール(管理者)セッションは任意。ハートビートのキープアライブはデバイスごとに設定します。
SFTP
SSH サブシステム上にあり、認証、ホスト信頼、下層接続をターミナルセッションと共有します。ローカルとリモートは二ペインで扱います。
ファイル操作
- ディレクトリの閲覧、アップロードとダウンロード、新しいフォルダ / ファイル、名前の変更、削除。
- 権限変更(chmod)、隠しファイル、パスのコピー。
転送管理
- 同名の競合を検出します。スキップか上書きかはあなたが確認し、静かに上書きすることはありません。
- 進捗は今のペインに残ります。タスクはいつでもキャンセルできます。
- 限界:再開可能な転送はまだ使えません(再開オフセットは下層で予約済みです)。
ローカルシェル
- ローカル PTY セッション:Windows は ConPTY、macOS / Linux はシステムの PTY。
- Windows は利用可能なターミナルを自動発見します:PowerShell、CMD、pwsh、WSL、Git Bash。
- ターミナル設定、検索、AIコマンド提案は、リモートセッションと同じ体験です。
信頼とキープアライブ
- ホストフィンガープリント:初回接続で確認が必要です。変化したフィンガープリントはアラートになり、拒否、今回だけ信頼、永続信頼を選べます。
- 資格情報の境界:デバイスのパスワード、秘密鍵、パスフレーズはローカルデータに留まり、ウェブサイトのアカウントと一緒にアップロードされることはありません。
- プロトコルごとのキープアライブ:SSH / RDP はプロトコル層のハートビート、Telnet は TCP keepalive と NOP。
システム要件
デスクトップ
- WindowsWindows 10 / 11
- macOSApple Silicon と Intel
- Linux主要なデスクトップディストリビューション
セッションプロトコル
- リモートSSH · Telnet · RDP · SFTP
- ローカルローカルシェル(PTY / ConPTY)