VSCode의 SSH 에이전트는 제정신이 아니다 (2025)

1 hour ago 1

VSCode의 SSH 원격 편집은 원격 환경의 기존 명령만 활용하는 대신, Bash 코드로 Node 바이너리를 포함한 에이전트를 내려받아 실행함 원격 에이전트는 SSH 포트 포워딩을 거쳐 로컬 VSCode 프런트엔드와 WebSocket으로 연결되며, 파일 탐색과 임의 파일 편집, 셸 PTY 프로세스 실행, 지속적인 상주가 가능함 LLM 코드 생성과 실행 환경을 연결하면 생성, 실행, 오류 피드백을 반복할 수 있어 잘못된 코드를 줄이는 데 어느 정도 도움이 됨 LLM은 Git 프로젝트뿐 아니라 시스템 설정까지 수정할 수 있으므로, 이런 반복 개발은 개발자 노트북보다 즉시 생성되는 깨끗한 격리 Linux 인스턴스에서 실행하는 편이 바람직함 이처럼 폭넓은 권한을 가진 원격 편집 도구를 개발 서버에서 쓰는 데도 우려가 있으며, 특히 운영 환경의 장애 대응 중 사용에는 강한 경계가 필요함 LLM 에이전트를 별도 실행 환경에 연결하려는 이유 Fly.io는 VSCode의 SSH 원격 편집 흐름에 통합하려고 조사함 VSCode가 널리 쓰이고 있으며, 특히 LLM으로 코드를 생성하는 VSCode 포크도 사용되고 있음 사용법을 알고 있다면 LLM 생성 코드는 일반적으로도 유용함. 여기에 실행 환경과의 피드백 순환을 연결하면 유용성이 더 커짐 LLM이 코드를 생성하고, 에이전트가 이를 실행한 뒤 오류를 LLM에 돌려주며 반복함 이 과정은 환각을 완전히 없애지는 않지만 어느 정도 줄이는 데 도움이 됨 LLM은 작업 범위의 경계를 잘 지키지 않아 Git 프로젝트뿐 아니라 시스템 설정도 수정할 수 있음 원하는 환경은 즉시 생성되고, 깨끗한 상태로 시작하며, 개발자 시스템에 피해를 주지 않는 격리 Linux 인스턴스임 Tramp와 다른 VSCode의 원격 에이전트 방식 Emacs의 Tramp는 대개 SSH 같은 대화형 연결에서 Bourne 셸 명령을 실행할 수 있으면 해당 환경으로 Emacs 기능을 확장함 VSCode는 원격 환경의 기존 도구만 활용하는 Tramp와 달리, Bash 부트스트랩 코드로 Node 바이너리 설치본까지 포함한 에이전트를 내려받음 관련 구현은 이 VSCode 서버 소스 코드로 추정되지만 확실하지 않음 에이전트는 SSH 포트 포워딩을 통해 실행 중인 VSCode 프런트엔드와 WebSocket 연결을 맺으며, 그 프로토콜은 다음 기능을 지원함 파일 시스템 탐색과 임의 파일 편집이 가능함 자체 셸 PTY 프로세스를 실행...

Read Entire Article