RDP FIDO · SSH

FIDO2 キーで守る SSH と、AI アシスタント付きコンソール

キーに触れるまで、SSH ポートは誰に対しても閉じています。開いた後に使うのは、保存したパスワードを自動で入力し、よく使うコマンドをワンクリックで呼び出せて、次のコマンドまで提案するコンソールです。AI アシスタントは、やりたいことをコマンドに変換し、許可すればターミナルの表示内容も読み取ります。

バージョン 1.24 以降。コンソールはクライアントの一部で、無料版にも含まれます。

実際のセッション:アシスタント(LM Studio 上のローカルモデル)が du の出力を読み、APT キャッシュの削除を提案しています。
実際のセッション:アシスタント(LM Studio 上のローカルモデル)が du の出力を読み、APT キャッシュの削除を提案しています。

キーに触れるまで SSH ポートは閉じたまま

Linux 版ゲートは、RDP とまったく同じようにポート 22(およびその他の任意の TCP ポート)を閉じます。FIDO2 キーまたはワンタイムコードで確認すると、ポートは 90 秒間、あなたのアドレスに対してだけ開きます。スキャナーやパスワードの総当たりから見えるのは、閉じたポートだけです。

パスワードとコマンドを覚えているコンソール

「SSH console」(SSH コンソール)タイルを開くと、サイドパネル付きのターミナルが起動します。sudo のパスワードはクリックで、または入力プロンプトが出たときに自動で入力されます。よく使うコマンドは一覧から実行でき、サーバーごとのものと全セッション共通のものがあります。

コンソールの中に AI アシスタント

やりたいことを言葉で伝えると、「Insert」(挿入)と「Run」(実行)のボタンが付いたコマンドが返ってきます。Claude のほか、OpenAI 互換のサーバーであればどれでも使え、自分のネットワーク内にあるローカルモデルにも対応します。

クリックからシェルプロンプトまで

RDP を開くのと同じ確認で、SSH も開きます。

  1. タイルをクリック。 SSH セッションは、クライアント内の専用タブにコンパクトなタイルで並びます。
  2. キーにタッチ。 クライアントがゲートに確認を要求します。確認の手段は、PIN または指紋付きの FIDO2 キー、Windows Hello、またはゲートがコードモードで動作している場合のワンタイムコードです。
  3. ポートはあなたにだけ開きます。 ゲートは、確認が届いたアドレスに対して SSH ポートを 90 秒間開きます。接続を始めるには十分な時間です。確立したセッションはそのまま続き、新しいセッションには再びキーが必要です。
  4. コンソールが ssh を起動。 使われるのはシステム標準の ssh なので、お使いの鍵、ssh-agent、~/.ssh/config はこれまでどおり機能します。
AI

AI アシスタント:やりたいことをコマンドに

アシスタントはコンソールのサイドパネルにあり、どのマシンにどのユーザーで接続しているかを把握しています。どのモデルを使うかは自分で決められます。

やりたいことを伝えて、コマンドを受け取る

やりたいことを伝えて、コマンドを受け取る

提案されたコマンドは、それぞれボタン付きの独立したブロックで表示されます。「Insert」は Enter を押さずにターミナルへ入力し、「Run」は実行し、「+ Save」は自分のコマンド一覧に保存します。

API キーで Claude を使う

API キーで Claude を使う

Anthropic の API キーを入力すれば、アシスタントは Claude になります。アドレスとモデルはあらかじめ入力されており、キーを入力するとモデルの一覧が表示されます。

または、自分のネットワーク内にある自前のモデル

または、自分のネットワーク内にある自前のモデル

OpenAI 互換のサーバーならどれでも使えます:LM Studio、Ollama、自前のゲートウェイ。モデルの一覧は、コンソールが自分でサーバーに問い合わせます。ローカルモデルなら、質問もターミナルの出力もネットワークの外に出ません。

プロンプト:サーバーの説明は一度だけ

プロンプト:サーバーの説明は一度だけ

アシスタント向けの常設メモです。どんなシステムか、何がインストールされているか、何に触れてはいけないか。チェックを付けたプロンプトは、質問のたびにモデルへ送られます。対象はこのセッションだけにも、すべてのセッションにもできます。

会話の履歴

会話の履歴

会話はセッションごとに保存されます。以前の会話を開いて続けることも、新しい会話を始めることもできます。古い会話を開いても、ターミナルには何も入力されません。

アシスタントに見えるもの、決して見えないもの

  • ターミナルのテキスト:「Sees the console」(コンソールを見る)にチェックがある間だけ。 その間は、質問のたびに画面の最後の 200 行が送られます。チェックがないときに送信を止めるのは、パネルのページではなくプログラム本体です。
  • パスワード:決して見えません。 入力するのはプログラムで、ターミナルには表示されず、モデルに送るテキストにも入りません。
  • API キーは暗号化して保存されます(Windows では DPAPI、Linux ではデスクトップのキーリング)。キーが送られるのは、保存したときのアドレスに対してだけです。
  • リクエストはお使いの PC から直接、入力したアドレスへ送られます。当社のサーバーは経由しません。

誰が Enter を押すかは、あなたが決めます

  • By click only(クリック時のみ、既定):アシスタントは提案するだけで、挿入や実行は自分で行います。
  • Insert the first one(最初の 1 つを挿入):最初に提案されたコマンドがコマンドラインに入ります。Enter は自分で押します。
  • Run the first one(最初の 1 つを実行):最初のコマンドがすぐに実行されます。このモードをオンにするとき、コンソールが警告を表示します。

アシスタントには、破壊的なコマンドから始めないこと、またデータの削除、サービスの再起動、アクセス権の変更を伴うコマンドの前には 1 行で警告することを指示してあります。それでも相手はモデルです。実行する前にコマンドを読んでください。

パスワードは自動で入力

パスワードマネージャーのように、ただしターミナルの中で。

  • エントリは、自分に対応する入力プロンプトに答えます。 行の一部(たとえば [sudo] password)を指定しておくと、ターミナルにその入力プロンプトが表示された時点で、コンソールがそのエントリを提示します。
  • 「Type it by itself」(自動で入力):エントリがクリックなしで入力プロンプトに答えます。ただし 15 秒に 1 回までなので、間違ったパスワードが 3 回続けて入力されることはありません。
  • ログインパスワードにも、鍵のパスフレーズにも:Enter passphrase for key… はパスワードの入力プロンプトとして認識されます。
  • 保管するのは当社ではなくシステム:Windows では現在のユーザーの DPAPI、Linux ではデスクトップのキーリングです。パネルのページがパスワードを受け取ることはありません。ページはエントリを指定するだけで、入力はプログラムが行います。
ターミナルが sudo のパスワードを求めると、コンソールが該当するエントリを提示します。
ターミナルが sudo のパスワードを求めると、コンソールが該当するエントリを提示します。

コマンドをワンクリックで

よく使うコマンドは、シェルの履歴を探さずにクリックで。

  • クリックでコマンドを実行。「Insert」は Enter なしで入力するので、引数を書き足せます。
  • サーバー別と共通:このセッションのコマンドが先頭に並び、残りは全セッション共通です。
  • 複数行のコマンドも使えます。アシスタントが出した良いコマンドは「+ Save」で保存できます。
保存済みのコマンド:このサーバー用と全セッション共通。
保存済みのコマンド:このサーバー用と全セッション共通。

クライアント:SSH タブとセッション設定

SSH サーバーはデスクトップの隣、専用のタブにあります。

Windows クライアントの「SSH」タブ。
Windows クライアントの「SSH」タブ。
  • コンパクトなタイルが並ぶ「SSH」タブ:名前、アドレス、ユーザー、最後に接続した日時。Tab キーでデスクトップとの間を切り替えられます。
  • タイルに好きな画像を設定(PNG、JPEG、BMP、GIF、ICO)。目的のサーバーがひと目で見つかります。
  • SSH ポート、鍵ファイル、ssh オプションをセッションで指定:オプションは入力したとおりに ssh へ渡されます。たとえばポート転送の -L や踏み台ホストの -J です。
  • 別途ダウンロードは不要:Windows ではコンソールがクライアントに組み込まれており、クライアントの更新と一緒に届きます。Linux ではクライアントパッケージに含まれる rdpfido console コマンドです。
「SSH console」プロトコルのセッション:ゲート、SSH ポート、鍵ファイル、ssh オプション。
「SSH console」プロトコルのセッション:ゲート、SSH ポート、鍵ファイル、ssh オプション。

ゲート:サーバーでコマンド 1 つ

Linux 版の RDP FIDO ゲートは、同じキーでほかの TCP ポートも閉じます:SSH、Proxmox の Web コンソール、管理パネル。

サーバーで

# SSH を閉じる。複数のポートはスペースで区切る$ sudo rdpfido-gate ports add 22
# 現在閉じているポート$ sudo rdpfido-gate ports
# ポートを通常の状態に戻す$ sudo rdpfido-gate ports remove 22

Linux クライアントから

# キー → 開放時間のあいだポートが開く$ rdpfido open web-01
# 同上、続けてセッションのホストに ssh$ rdpfido ssh web-01
# 同上を SSH コンソールのウィンドウで$ rdpfido console web-01
  • Ubuntu、Debian、Astra Linux、RED OS、ALT Linux 向けのパッケージ(deb と rpm)と、その他のディストリビューション向けのインストーラー付きアーカイブがあります。
  • 最大 16 ポート。 すでに開いている接続は切断されないので、SSH セッションの中からポート 22 を閉じられます。
  • うっかり自分を締め出すことはありません:最初のキーを登録するまで、ポートは開いたままです。非常時の出口は、マシン本体のコンソールで実行する rdpfido-gate unlock です。
  • 開放時間が制限するのは接続の開始だけ。 開放時間内に確立したセッションは、時間が過ぎた後も続きます。

はじめかた

  1. サーバー(Linux)で:ゲートのパッケージをインストールし、sudo rdpfido-gate setup を実行してから sudo rdpfido-gate ports add 22 を実行します。
  2. お使いの PC で:RDP FIDO クライアントのバージョン 1.24.1 以降をインストールし、ゲートが表示したコードでキーを登録します。
  3. セッションを追加:「SSH」タブで「Add」(追加)を押し、サーバー、ユーザー名、プロトコル「SSH console」、ゲートのアドレスを指定します。
  4. アシスタント:「Assistant」タブを開き、歯車アイコンから、API キーを使う Claude か、自分のサーバーのアドレスを設定します。

まだできないこと

  • 追加のポートを閉じるのは Linux 版ゲートです。Windows 版ゲートは、今のところ RDP だけを保護します。
  • クラウドハブ(rdpfido-cloud)経由で通るのは RDP だけです。SSH にはゲートへの直接接続が必要です。
  • Linux 用のグラフィカルクライアントにはコンソールのタイルがありません。コンソールは rdpfido console で起動し、現在の Linux パッケージではモデル名を手入力します。
  • ファイル転送と、1 つのコンソールウィンドウで複数のターミナルを開くタブはありません。

よくある質問

AI アシスタントにパスワードは見えますか?

いいえ。パスワードはプログラム自身が入力し、ターミナルには表示されず、パネルのページにも渡されず、モデルに送るテキストにも入りません。アシスタントがターミナルのテキストを受け取るのは、「Sees the console」にチェックがある間だけです。

クラウドなしで、ローカルモデルを使えますか?

はい。OpenAI 互換のサーバーならどれでも使えます:LM Studio、Ollama、自前のゲートウェイ。リクエストはお使いの PC から入力したアドレスへ直接送られるため、モデルがネットワーク内にあれば、外には何も出ません。

対応しているモデルは?

Anthropic API 経由の Claude(API キーが必要)と、OpenAI 互換 API で提供されるモデルすべてです。アドレスを入力すると、コンソールがサーバーにあるモデルを表示します。モデル名は手入力もできます。

アシスタントが自分でコマンドを実行することはありますか?

既定ではありません。コマンドの挿入も実行も、クリックしたときだけです。ほかに「insert the first one」(最初の 1 つを挿入)と「run the first one」(最初の 1 つを実行)の 2 つのモードがあります。後者は、モデルもタスクも信頼できるときにだけオンにしてください。

ハードウェアキーは必要ですか?

FIDO2 キー(YubiKey など)か Windows Hello があれば使えます。キーがない場合、ゲートは認証アプリのワンタイムコードを使うモードで動作できます。

ゲートなしでコンソールだけ使えますか?

はい。ゲートなしのセッションは、パスワード、コマンド、アシスタントを備えた普通の SSH コンソールです。ゲートが加えるのは最も重要な点、つまり自分以外の全員に対して閉じたポートです。

有料ですか?

コンソールはクライアントの一部で、無料版にも含まれます(保存できるセッションは 10 件まで)。買い切りの Pro では、セッション数の制限と広告がなくなります。モデルの料金は提供元に別途支払います。自前のモデルなら費用はかかりません。

どのシステムで動きますか?

コンソール付きのクライアント:Windows 10 / 11(システムの OpenSSH と WebView2 を使用)と Linux。SSH を閉じるゲート:Linux。Ubuntu、Debian、Astra Linux、RED OS、ALT Linux 向けのパッケージがあります。

SSH をキーで閉じて、手伝ってくれるコンソールで作業を

無料版に、ゲートもクライアントもコンソールも含まれます。アシスタントは、選んだモデルで動きます。