Google の Gemini CLI はターミナルの中の有能なエージェントで、他のコーディングエージェントと同じく、やがてノート PC を離れて本物のサーバーに触れる必要が出てきます。サービスを再起動する、ログを tail する、マシン自体でデプロイを走らせる、といったことです。魅力的な近道は、ssh を直接実行させることです。CLI はすでにシェルコマンドを実行するので、~/.ssh や動作中の ssh-agent に鍵がアンロックされた状態で置いてあれば、あなたがそのつもりかどうかに関係なく、Gemini にとって ssh prod は通ってしまいます。それが問題のすべてを一行で言ったものです。既定で、サーバーへのフルアクセスを渡してしまったのです。
Gemini CLI には、もっときれいな道筋が組み込まれています。MCP(英語)を話すのです。これは Claude Code、Cursor、Codex が使うのと同じプロトコルです。Termalin は内蔵の MCP サーバーを備えた SSH クライアントなので、Gemini をそのサーバーに向ければ、実際にあなたのホストを操作します。しかもエージェントが鍵を持つことはありません。所要時間はおよそ 20 分、ホスト 1 台です。
必要なもの
- Termalin。 デスクトップアプリです。Free プランで十分です。Gemini が話す相手は、その内蔵の MCP サーバーです。
- Gemini CLI。 同じマシン上に。
- ホスト 1 台。 Termalin に保存したもので、最初の実行には重要度の低いものを。
ステップ 1——エージェントアクセスを有効にし、ポリシーを設定する
エージェントアクセスは既定で無効です。Termalin で 設定 →「エージェントアクセス (MCP)」 を開き、有効にして、Gemini が到達してよいホストにチェックを入れます。エージェントにとって、そのリストの外のものは存在しません。新しいホストは、あなたがアプリ内で下す判断であって、エージェントが言葉巧みに入り込めるものではありません。
内部では、Termalin が MCP サーバー向けにホストのインベントリを書き出します。中身はエージェント専用の認証エントリだけで、パスワードや鍵がそのファイルに入ることはありません。認証はアプリの鍵カストディアン(あなたの代わりに鍵を預かり、署名する仕組み)にとどまります。あなたが一度アンロックすれば、Termalin がエージェントの代わりに署名します。Gemini が読める鍵ファイルはないので、漏れるものはなく、上の ~/.ssh の裏口もこれで閉じます。
ついでに、各ホストのエージェントポリシーを設定しましょう。フル(アクセス)、コマンドの許可リスト、またはブロックです。大事なものには、まず許可リストから始めてください。最小権限の設定は、それ自体が短い記事(英語)になっています。
ステップ 2——Gemini の設定にサーバーを登録する
Gemini CLI は、設定ファイル内の mcpServers オブジェクトから MCP サーバーを読み込みます。すべてのプロジェクト向けなら ~/.gemini/settings.json、プロジェクト単位なら .gemini/settings.json です。同梱の termalin-mcp バイナリを指すエントリを 1 つ追加します。
{
"mcpServers": {
"termalin": {
"command": "<path>/termalin-mcp"
}
}
}
これで連携は全部です。Gemini CLI を再起動(または MCP サーバーを再読み込み)すると、ツールがエージェントに現れます。hosts_list、ssh_exec、永続セッション(session_open / session_exec)、SFTP の読み書き、そしてポート転送です。Gemini で /mcp を実行すると、サーバーが接続されたことを確認でき、公開されているツールを一覧できます。ツールの完全な一覧(英語)が、そのひとつひとつを説明しています。
MCP をまったく配線したくないなら、もっと軽い選択肢があります。Termalin にはローカルターミナルのタブがあるので、gemini と打つだけで、SSH セッションの隣、アプリの中でそのまま CLI を実行できます。これで Gemini が同じウィンドウに入りますが、Gemini を あなたのサーバーで カストディアンを介して動かせるようにするのは、上の MCP の設定です。そしてそれこそが、鍵をエージェントの手の届かないところに保つ部分です。
ステップ 3——本物の雑用を与える
デモは飛ばしましょう。本物を手渡します。
staging-1 へのデプロイは終わったのに、ヘルスチェックが点いたり消えたりし続けている。原因を突き止めて直して。
Gemini は hosts_list を呼び、staging-1 を見つけ、セッションを開き、糸をたぐり始めます。サービスの状態、直近 100 行のログ、稼働中のものとの設定の差分。修正を提案し、あなたが設定したポリシーの範囲内でそれを適用し、チェックが緑になることを確認します。
これを、はらはらするものではなく安心できるものにしているのは、どれも隠されていないことです。Gemini が開くすべてのセッションは、Termalin にライブのターミナルタブとして現れ、ウォッチグリッド(英語)が、開いているすべてのセッションを横並びにして、エージェントが動かすタイルを光らせます。コマンドが走って着地する様子を見られ、いつでも割って入れます。
境界はどこにあるか
重要なものに向ける前に、知っておく価値のある既定値。
- あなたの鍵が Gemini の環境に入ることはありません。 カストディアンが署名し、エージェントは要求します。アクセスの取り消しは設定内のトグルであって、全サーバーにまたがる鍵のローテーションではありません。
- 届く範囲は、ステップ 1 でチェックしたホストのリストで、各ホストのコマンドポリシーが、そこで実行できることの境界を定めます。本番環境での「フル」は、やはりフルのシェルです。意図して設定してください。
- あなたの セッションへの入力は別扱いです。 既定で Gemini は自分のセッションを開きます。あなたがすでに開いているセッションに加わるのは、それ専用の同意トグルがあります。
- すべてのコマンドは記録に残ります。 録画が捉えるのは出力だけで、キー入力は決して記録しません。エージェントの各コマンドは、監査ログでエージェントのものとしてタグ付け(英語)され、どのデバイス・IP から来たかも残ります。
Gemini がクラウドで動くとき
Gemini が、あなたのデスクトップのない場所(CI ジョブ、クラウドのサンドボックス)で動いているなら、ローカルのバイナリには届きませんが、Termalin のホスト型 MCP エンドポイントには届きます。ウェブキャビネットで API キーを発行し、適切なサーバーにスコープを絞り、読み取り専用か許可リストに設定し、有効期限を与えて、エージェントを https://termal.in/api/v1/mcp に向けます。これは Connector で登録したサーバーに鍵なしで到達し、実行のたびに短期証明書で認証します。CI/CD の完全なパターンはこちら(英語)。
定着させる習慣
最初の 1 週間は、仕事の速い同僚を迎え入れるように扱いましょう。ウォッチグリッドを開いたままにし、完了の状態がはっきりした雑用を Gemini に与え、何かを広げる前に、どうやってそこにたどり着いたのかを読んでください。トレードこそが要点です。Gemini はあなたのサーバーへの本物の到達力を得て、あなたは、いったん外に出たら返してもらえない唯一のもの、つまり鍵を、手元に保ちます。
Termalin は、内蔵の MCP サーバー、鍵カストディアン、そしてホストごとのエージェントポリシーを備えたクロスプラットフォームの SSH クライアントです。ダウンロード、MCP リファレンス、または鍵の扱い方をご覧ください。