VSCode SSH Remote : un agent très intrusif
Original : VSCode's SSH Agent Is Bananas (2025)
Pourquoi c'est important
L'essor des agents LLM rend la surface d'attaque SSH Remote de VSCode bien plus sensible qu'avant.
Fly.io révèle que la fonction SSH Remote de VSCode ne se contente pas d'une connexion légère : elle déploie un agent complet avec Node.js binaire, communique via WebSockets et peut lire, écrire des fichiers, lancer des processus PTY et persister sur le système distant.
Thomas Ptacek de Fly.io a publié une analyse de l'agent SSH Remote de VSCode, motivée par l'intérêt de la plateforme pour les workflows d'édition à distance — notamment dans le contexte des forks de VSCode pilotés par LLM (Cursor, Windsurf, etc.).
Le principe de ces agents LLM « en boucle fermée » est simple : le modèle génère du code, un scaffold l'exécute, les erreurs remontent au LLM, qui itère. Pour éviter que ce cycle ne s'emballe sur la machine locale, l'idéal est une instance Linux isolée et éphémère.
Là où Emacs/Tramp se contente de lancer des commandes Bourne shell via SSH sans rien installer, VSCode adopte une approche radicalement différente : un snippet Bash télécharge un agent complet, Node.js inclus, qui s'établit via port-forwarding SSH puis ouvre une connexion WebSocket vers le frontend VSCode. Cet agent peut parcourir le système de fichiers, éditer n'importe quel fichier, spawner des processus PTY et — détail notable — persister sur l'hôte.
Ptacek évite soigneusement le mot « rootkit », mais l'analogie est transparente. Il juge l'exposition acceptable en développement, mais « catastrophique » si un tel agent tournait sur un serveur de production pendant un incident. Fly.io précise n'avoir finalement pas eu besoin de s'y intégrer profondément pour connecter une Machine Fly à VSCode.