AI News HubLIVE
サイト内リライト3 分で読了

Corv: AIエージェント(および人間)向けSSHクライアント

Corvは、AIエージェントが構造化JSON出力、接続再利用、安全な資格情報管理でリモートサーバーにコマンドを実行できるSSHクライアントです。人間向けのインタラクティブターミナルも提供します。

ソースHacker News AI著者: khalid_0002

Corvは、AIエージェントと人間の両方のために設計されたSSHクライアントです。従来のSSHは、エージェント駆動のインフラストラクチャにおいて、呼び出し元に資格情報を公開し、エージェントが解析する必要のある端末テキストを返し、コマンドごとに再認証が必要で、長時間実行タスクにはtmuxやnohup、カスタムスクリプトに依存していました。Corvは、エージェントが名前で接続し、構造化JSON出力を受け取り、認証済み接続を再利用し、長時間実行ジョブをデタッチして再開できるようにすることで、この状況を変えます。人間のユーザーも、インタラクティブなターミナルUIを通じてまったく同じ接続を使用できます。

インストールは簡単です。Linux/macOSではcurlコマンド、WindowsではPowerShell、さらにGoを使ってインストールできます。Corvは更新およびアンインストール機能も提供し、ユーザーが明示的に実行した場合にのみ更新が行われ、バックグラウンドで自動更新されることはありません。

使用方法としては、インタラクティブな接続管理とコマンドライン操作をサポートします。corv addでホストを追加する際、ユーザー、アドレス、鍵、踏み台ホストを指定できます。パスワードはローカルの暗号化ボールトに安全に保存され、コマンドライン引数として渡されることはありません。接続後、インタラクティブセッションまたは非インタラクティブコマンド(エージェントパス)を実行できます。非インタラクティブコマンドでは--jsonフラグを使用して構造化データを出力できます。長時間実行コマンドは自動的にデタッチされ、同じコマンドを再実行することで監視を再開でき、2つ目のコピーは起動されません。CORV_WAIT環境変数で待機時間を制御できます。

接続再利用はCorvの重要な機能です。ローカルブローカープロセスがマシンごとに1つの認証済みSSH接続を保持し、各corv --コマンドはその接続上の新しいチャネルとして実行されるため、接続と認証のコストは最初の1回だけ支払えば済みます。ブローカーは初回使用時に自動的に起動し、15分間アイドル状態が続くと終了し、サーバーには何もインストールしません。これは接続再利用であり、リモートセッションの永続化ではありません。各コマンドは独自のシェルで実行され、作業ディレクトリなどのシェル状態はコマンド間で引き継がれません。

出力処理では、Corvはプログラムによる消費のためにコマンド出力を正規化します。プログレスバーなどのキャリッジリターンによる再描画は最終状態に圧縮され、ANSI制御シーケンスは除去され、stdoutとstderrは書き込まれた順序でインターリーブされてstdoutに返されます。完了したコマンドは完全な出力を返し、本当に大きな出力のみが切り詰められます。実行中のコマンドは短いプレビューを返します。転送失敗は分類され、リモートの終了コードはプロセスの終了コードとして伝播されます。

セキュリティモデルでは、Corvは完全にクライアント上で動作し、Go SSHライブラリを使用してSSHを実装しています。宛先サーバーには何もインストールされません。接続プロファイルはOS保護のボールトキーで暗号化され、パスワードと鍵のパスフレーズはローカルの暗号化ボールトに保存されます。認証は、設定されたIDファイル、ssh-agent、デフォルトの~/.ssh鍵、パスワードの順で試行されます。踏み台ホップは個別にホスト鍵検証が行われます。ホスト鍵は~/.ssh/known_hostsに対して検証され、未知のホストはインタラクティブに承認されない限り拒否され、変更されたホスト鍵は常に拒否されます。ブローカーはOS権限のローカルIPC(UnixソケットまたはWindows名前付きパイプ)とエンドポイントトークンを使用して多層防御を実現しています。

アーキテクチャは、接続プロファイル、ボールト、SSH転送、ブローカー、出力プロセッサ、監査ログ、インタラクティブTUI、コマンドラインルーティング、ファイルパスなどの独立したモジュールで構成されており、SSHバックエンドや出力プロセッサを他の部分に影響を与えずに交換できます。

Corvは、ClaudeやCodexなどのAIコーディングエージェントとの統合も提供しており、統合フォルダ内の指示ファイルをエージェントが直接使用できます。開発はGo言語で行われ、Linux、macOS、Windowsをサポートしています。

要約すると、CorvはAIエージェントと人間の両方にとって、より安全で効率的、構造化されたSSH接続方法を提供し、リモートコマンドを頻繁に実行する自動化シナリオに特に適しています。