VSCode SSH機能の仕組みとセキュリティ上の懸念
Judul asli: VSCode's SSH Agent Is Bananas (2025)
Mengapa Ini Penting
LLMエージェント開発が普及する中、リモート開発環境のセキュリティリスクが改めて問われる。
Fly.ioのエンジニアがVSCodeのSSHリモート編集機能を調査。Node.jsバイナリを含むエージェントをリモートに展開し、WebSocket経由でファイル操作やシェル起動を行う仕組みが判明した。
Fly.ioのThomas Ptacek氏が、VSCodeのSSHリモート編集機能の内部動作を詳細に調査した。同社はLLMエージェントをFly Machine上で動作させるためにVSCodeの接続フローへの統合を検討しており、その過程で同機能の実装を深く掘り下げた。
VSCodeのリモート編集はEmacs「Tramp」とは根本的に異なるアプローチを取る。TrampがSSHセッション上でBourneシェルコマンドを活用する「現地調達型」なのに対し、VSCodeはBashスクリプトでNode.jsバイナリを含むフルエージェントをリモートホストにダウンロード・インストールする。このエージェントはポートフォワードされたSSH上で動作し、WebSocket接続を確立。ファイルシステムの走査、任意ファイルの編集、独自シェルPTYプロセスの起動、そして自身の永続化が可能だ。
Ptacek氏はこの動作について「セキュリティ業界では別の名称で呼ばれるツールと同じ動作パターン」と指摘し、開発サーバーでのVSCode Remote利用には神経を使うべきで、本番環境のインシデント対応中に使われたら「激怒する」と述べた。
なお同社はFly Machine向けのカスタム接続実装においてこの仕組みを直接利用する必要はなかったとしている。