Skip to content

リモート

ドキュメント作成中

一部の内容はまだ不完全な場合があります。

ThinkTerm のリモートワークスペースは、ローカルと同じ感触で使えることを目指しています。セッションを保持するのは目の前のウィンドウではなくマルチプレクササーバーなので、ノート PC を閉じても、別のマシンへ移っても、ネットワークが切れても、作業が終わることはありません。

Space ごとにまとまったライブターミナル(現在オフラインのマシンを含む)

SSH ホスト帳

ThinkTerm は独自のホスト一覧を、システムの SSH 設定とは別に保持します。その隣に、~/.ssh/config で定義されたホストが読み取り専用のビューとして表示されます — ThinkTerm はこのファイルを読みますが、書き込むことはありません。

ThinkTerm 自身の一覧では、ホストごとにユーザー名、鍵ファイル、任意の SSH オプション、既定のワークスペース、そして保存パスワードを記録できます。OS 判定は既定で有効になっており、接続したホストがどのディストリビューションで動いているかを報告できます。

3 つの接続方法

ホストは次のいずれかの方法で開けます。

通常の SSH — 直接のセッションです。接続が切れればセッションも終わります。

Mosh — ネットワークの切り替えやスリープに耐えるローミング型の UDP セッションです。ThinkTerm は既定で mosh-server new -s -l LANG=en_US.UTF-8 によりリモート側を起動します。このコマンドはホストごとに変更でき、リモートマシン上の mosh-server が通常と異なる場所にある場合に必要になります。

ThinkTerm Connect — 常駐するマルチプレクサです。完全なワークスペースが得られるのはこの方法だけです。サーバーがセッションツリーを保持するため、複数のクライアントが同時に接続して同じ構造を見ることができ、あるクライアントが離脱してもすべてはそのまま動き続けます。

保存したパスワード

ホスト帳に保存したパスワードは AES-256-GCM で暗号化して保存されます。鍵は secret.key という別のファイルに、ワークスペースデータディレクトリ内のホスト帳の隣に置かれます。

macOS と Linux では、この鍵ファイルはモード 0600 で作成されるため、そのマシンの他のアカウントからは読めません。

ただし、これが何を守らないかは明確にしておくべきです。このモードが止めるのは他のユーザーであって、あなた自身として動くものではありません。ファイル同期、バックアップ処理、あるいはあなたが起動した任意のプログラムは、0600 のファイルを難なく読み取ります。しかも secret.key は暗号化されたホスト帳と同じディレクトリにあるため、そのディレクトリをコピーするものは両方を持ち去り、あとから落ち着いて復号できます。鍵をシステムキーチェーンではなくディスクに置くのは意図的なトレードオフであり、これがその代償です。

Windows では鍵ファイルに特別な権限が付きません

0600 が適用されるのは Unix のみです。Windows では secret.key は通常のファイルとして書き込まれ、置かれたディレクトリの既定の権限を引き継ぎます。そのマシンを複数のアカウントで共有している場合や、ディレクトリの権限が緩い場合は、保存したパスワードは「そのフォルダーに到達できる人なら誰でも読める」ものとして扱ってください。

パスワードを保存したくない場合は、代わりに鍵ファイルを使ってください — 同じ編集画面にある、ホストごとの項目です。

切断は削除ではありません

これは 2 つの別の操作であり、ThinkTerm は意図的に分けています。

切断 はこのクライアントを離脱させるだけです。サーバーは動き続け、その中のセッションはすべて生きたまま残ります。後で接続し直せば、ワークスペースは元のまま復元されます。

サーバー上で削除 はセッションを終了させます。これは破壊的な操作であり、ノート PC を閉じるだけのときに望むものではありません。

予期しないネットワーク切断のあと、ThinkTerm は自動的に再接続してセッションを復元します。再試行中は失敗ではなく「接続中」として表示されます。

ただし自動再試行には上限があります。約 2 分間続けて失敗すると ThinkTerm は再試行をやめ、あなたが「再接続」を押すのを待ちます。あきらめても何も破棄されません — ドメインは接続されたままで、ウィンドウもペインもすべて残ります — が、それより長い障害からの復帰には手動の操作が 1 つ必要です。

リモートをローカルのように感じさせるために

以下の挙動は ThinkTerm Connect ドメイン上のセッションに適用されます。

  • 待ち時間が体感できる場合に限り、入力は往復を待ちません。 予測的なローカルエコーはサーバーを待たずにキー入力を画面へ出しますが、実測の往復時間がしきい値(既定 100 ミリ秒)に達している場合だけ有効になります。それ未満ではサーバー自身のエコーが十分に速いため、予測は無効のままです。ローカルセッションでは常に無効です。
  • 分割はローカル専用の贅沢ではありません。 分割ツリー、第 2 階層のタブバー、ドラッグによる分割、仕切りのドラッグによるサイズ変更は、いずれもリモートで動作し、ローカルと同じように振る舞います。
  • サイズがぶれません。 仕切りをドラッグしても、跳ね返り、圧縮、再同期の嵐は起きません。
  • ホイールが正確です。 vimless のようなマウスモードのプログラムでは、元のノッチ数が保たれるため、スクロールが速すぎることも遅すぎることもありません。
  • クライアントの状態はあなたのものです。 フォーカスと選択範囲はローカルが正であり、サーバーのエコーで乱されません。各クライアントが自分のパレットを持つため、片方の端末でテーマを変えてももう一方は変わりません。

関連