>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Rust

SSHキーを漏えいせずにローカルでAIエージェントを実行する方法

Claude CodeやOpenCodeなどの自律型エージェントをコンソールで直接実行すると、わずかな不安感が芽生えます。サードパーティの言語モデルにターミナルでのコマンド実行、ファイル読み取り、ソースコード変更の権限を付与することになるからです。一方、プロセスはデフォルトでローカルユーザーと同じ権限を保持します。モデルは誤ってファイルを読んだり、~6~を閲覧したり、ホームディレクトリから設定ファイルをダウンロードしたりすることも可能です。

通常、セキュリティのためにDockerコンテナや仮想マシンを起動します。しかし、日常的な作業には不便です。コンテナの起動には時間がかかり、RAMを数ギガバイト消費し、フォルダのマウント設定を繰り返す必要があります。

~7~プロジェクトは異なるソリューションを提供します。Sigstore(PyPI、npm、Homebrewで使用されているパッケージデジタル署名標準)を previously立ち上げたチームが開発しました。

nono logo

プロセスの隔離をサブ秒で

このツールは、コンテナ、バックグラウンドデーモン、仮想ディスクを使用せずに、任意のAIプロセスのサンドボックスを作成します。エージェントの起動を1つのCLIコマンドでラップするだけで、プロセスはすぐに制限された環境に 配置されます。

プロジェクトコードはRustで書かれています。macOS、Linux、Windows(WSL2経由)がサポートされています。

エージェントの起動は次のようになります:

~0~

このコマンドを実行すると、~8~は現在のフォルダ内のファイルのみを読み書きできるようになります。ディスク上の他のすべてのディレクトリ、秘密SSHキー、グローバルシステム変数はプロセスから完全に可視にならなくなります。

セキュリティプロファイルの使用

アクセス設定はregistry.nono.shにある特別なレジストリに保存されます。人気のツール向けの готовыеプロファイルが用意されています。プロファイルはファイルアクセスルール разрешенныеネットワークホスト、トークン転送オプションを記述します。

レジストリの готовыеプロファイルがニーズに合わない場合は、カスタマイズが簡単です:

~1~

コマンドは宣言的設定を含むJSONファイルを 生成します。それを編集して会社のGitに保存し、チーム全体で可以使用できます。

外部ユーティリティの隔離とトークンプロキシ

~9~最も興味深い部分は、プロジェクトが外部ツールと連携する方法です。エージェントは孤立した真空で動作することは稀で、普通は~10~、~11~、~12~などのユーティリティを呼び出すか、MCPサーバーを起動します。

標準的なサンドボックスは、エージェントに完全なネットワークとキーアクセスを許可するか、すべてを切り詰めるかのどちらかです。~13~では、ユーティリティはそれぞれのポリシーを持つ個別の 子サンドボックスで起動されます。

ワークフローは次のようになります:

  • エージェントは~14~を実行したがしたが、子プロセスはリポジトリディレクトリとGitの serviceファイルのみにアクセスできます。
  • エージェントは~15~との連携を 要求したが、生のGitHubトークンはエージェントのメモリにまったく届きません。
  • リクエストは組み込みの プロキシサーバーを経由し、HTTPメソッドレベルでフィルタリングを設定できます。
  • APIへのGETリクエストでのみ issueリストを読むことを許可し、リポジトリの削除やmainブランチへのプッシュをブロックできます。

アクセスポリシーは設定ファイルに固定されます。エージェントは内部からこれらのルールを変更したり、メモリから認証情報を抽出したりすることはできません。

GitHub APIアクセス制限の例:

~2~

다양한言語向けの готовыеライブラリ

開発者はプロジェクトをCLIユーティリティに限定しませんでした。独自のAIエージェントやサービスフレームワークを作成している場合、アクセス許可の制限をアプリケーションコードに直接埋め込むことができます。

リポジトリには готовыеFFIバインディングが用意されています:

  • Python(~16~)
  • TypeScript(~17~)
  • Go(~18~)
  • Rust(ネイティブライブラリ)

クイックスタート

macOSでHomebrew черезユーティリティをインストールするには1つのコマンドで十分です:

~3~

他のプラットフォーム向けには、标准的なインストールスクリプトが用意されています:

~4~

プロジェクトはApache-2.0ライセンスで配布されています。コードはオープンソースで、GitHubで既に3,000スターを超えています。

導入する価値はあるか

Claude Code、OpenCodeなどのコンソールAIエージェントを毎日使い、MCPベースのツールを自作しているなら、~19~を試してみてください。ターミナル速度を犠牲にせず、SSHキーとクラウドアクセスの 安全性を心配しなくて済む便利な方法です。

関連プロジェクト