Fly.io раскритиковала SSH-агент VSCode за избыточные права доступа

Инженеры Fly.io разбирались, как встроить свои облачные машины в процесс удалённого редактирования VSCode по SSH, в том числе потому, что форки VSCode всё чаще используют для агентных LLM-сценариев: модель генерирует код, агент запускает его в среде, ошибки возвращаются модели, и цикл повторяется. Авторы отмечают, что такой цикл опасно гонять на рабочем ноутбуке разработчика, поэтому хочется изолированной чистой Linux-машины, которую не жалко.
По ходу разбора авторы сравнили механизм VSCode с Tramp, старым удалённым режимом редактирования в Emacs, который работает «с земли»: просто выполняет команды shell по уже открытой SSH-сессии, ничего дополнительно не устанавливая. VSCode устроен иначе: при подключении он запускает Bash-скрипт («стейджер»), который скачивает и устанавливает на удалённой машине полноценного агента, включая бинарную установку Node.js. Этот агент работает поверх проброшенного через SSH порта и устанавливает обратное WebSocket-соединение к запущенному на компьютере разработчика клиенту VSCode. По протоколу этого соединения агент умеет свободно перемещаться по файловой системе, редактировать произвольные файлы, запускать собственные процессы shell (PTY) и закрепляться (персистировать) в системе.
Авторы отмечают, что в мире информационной безопасности у инструментов с таким поведением есть устоявшееся название, но вслух они его не произносят, из вежливости к VSCode, и ограничиваются шуткой, что оно «грызуньего» происхождения. При этом они признают, что были бы немного нервными, разреши они кому-то удалённо редактировать через VSCode dev-серверы, и были бы в ярости, если бы то же самое происходило на продакшене во время инцидента. В финале авторы иронично замечают, что для их собственной задачи, подключить VSCode к машине Fly.io, разбираться во всём этом на самом деле не понадобилось.
Ключевые факты
- Блог Fly.io разобрал, как под капотом работает функция удалённого редактирования VSCode по SSH, сравнив её с Tramp в Emacs
- В отличие от Tramp, который использует только уже открытую SSH-сессию, VSCode запускает Bash-скрипт, скачивающий и устанавливающий на удалённой машине агента вместе с бинарной сборкой Node.js
- Агент работает через проброшенный SSH-порт и открывает обратное WebSocket-соединение к клиенту VSCode; по протоколу он может ходить по файловой системе, редактировать любые файлы, запускать процессы shell и закрепляться в системе
- Авторы избегают прямого названия такого класса инструментов в мире безопасности, отшучиваясь про «грызуний» характер, и признаются, что нервничали бы, разрешая такое удалённое редактирование на dev-серверах, а на продакшене во время инцидента, были бы в ярости
- Для собственной задачи, подключить VSCode к машине Fly.io, команде в итоге не пришлось разбираться со всем этим поведением агента
Почему это важно
Материал показывает, что за привычной функцией VSCode Remote-SSH скрывается полноценный агент с широкими правами на удалённой машине, это важно в контексте растущей популярности агентных LLM-сценариев разработки, где код автономно генерируется и исполняется в связке модель+редактор.
Кому это важно
Разработчикам и командам, использующим VSCode для удалённого редактирования, особенно на боевых (production) или чувствительных серверах, а также инженерам инфраструктуры вроде Fly.io, которые встраивают облачные окружения в рабочий процесс редакторов.
Как это применить
Материал подсказывает избегать использования VSCode Remote-SSH на продакшен-серверах и во время инцидентов, использовать для агентных LLM-циклов изолированные одноразовые Linux-окружения, а не рабочий ноутбук или боевую машину напрямую.
Можно ли доверять
Источник, технический блог компании Fly.io, написанный от первого лица множественного числа без указания конкретного автора и даты в тексте статьи; это авторский разбор и мнение с элементами иронии, а не формальный аудит безопасности или официальный отчёт об уязвимости.
Риски и подводные камни
Текст, не строгий security-аудит: конкретной уязвимости, CVE или инцидента не описано, реакции Microsoft или команды VSCode не приводится, а ссылка на предполагаемый исходный код агента дана без цитирования. Часть тона материала, ирония и шутка, а не прямое обвинение.
«В мире безопасности есть название для инструментов, которые работают именно так. Вслух я его не произнесу, это будет нечестно по отношению к VSCode, но скажем так: оно относится к грызунам.»
— автор блога Fly.io