VSCode의 SSH 원격 개발은 원격에 Node 바이너리를 깔고 파일·셸·PTY를 맘대로 부리는 구조였다

VSCode의 SSH 원격 개발은 원격에 Node 바이너리를 깔고 파일·셸·PTY를 맘대로 부리는 구조였다

  • fly.io 블로그의 Thomas Ptacek이 VSCode의 SSH 원격 개발 기능을 뜯어본 결과 원격 호스트에서 Bash 스테이저가 돌고 Node 바이너리를 포함한 에이전트가 내려받아진다는 점을 지적함
  • 이 에이전트는 포트포워딩된 SSH 위 WebSocket으로 로컬 VSCode 프런트엔드에 접속해 파일시스템 탐색, 임의 파일 수정, 자체 셸 PTY 프로세스 생성, 자기 자신 영속화까지 수행 가능해 Ptacek은 보안업계 이름을 암만히 흘렸고 댓글은 그게 RAT라고 지명함
  • Emacs의 Tramp는 원격에 아무것도 설치하지 않고 Bourne 셸 명령으로만 동작하는 반면 VSCode는 원격에 전체 에이전트와 Node를 설치하는 방식이라 구조가 근본적으로 다름
  • Remote-SSH 확장 페이지의 보안 노트는 손상된 원격 머신이 VS Code 원격 연결을 이용해 로컬 머신에서 코드를 실행할 수 있음을 명시함
  • Ptacek은 개발 서버 대상 원격 편집에는 조금 신경이 쓰이고 프로덕션 장애 상황에서라면 격렬히 반대한다면서도 fly.io는 Fly Machine용 자체 연결을 쓰므로 이번 건이 자사에는 실질적 문제가 아니라고 씀

Hacker News opinions

에이전트에 SSH를 줄 땐 걔가 뭘 하는지 내가 다 보고 이해하고 싶음. 내 대신 칠 수 있는 CLI 명령만 '타이핑'하게 두는 게 목표인데, opencode에 qwen 3.8-flash-next나 deepseek v4 0731 정도면 그럭저럭 잘 되더라.

다들 너처럼만 했으면 AI 안전이 이만큼 큰 문제가 안 됐을 듯. 기본 인간 패턴이 쏘고 잊기라 금방 선을 넘음.

제목에 (2025)가 빠졌는데, VSCode SSH 에이전트는 원격 개발의 천사임. fly.io가 단점이라 적은 게 전부 장점이고 여러 팀에서 써봤는데 문제 한 번 없었음. SSH 접근을 원하는 대로 쪼개서 제한할 수도 있고.

원격 툴로 원격 편집하려면 이게 맞는 아키텍처임. 정말 잘 돼서 씀. SSH 끊길 때 재연결 버그가 오래됐지만 그건 아키텍처 잘못은 아님.

근데 글이 지적한 그 비보안성은 아무것도 달라진 게 없음. 문제는 원격 호스트가 이 프로토콜로 로컬 호스트를 컨트롤할 수 있다는 거임.

리눅스 관리자 입장에서 VSCode ssh는 진짜 짜증남. MotD를 안 띄워서 사용자 공지를 못 보여주고 세션 재사용도 안 해서 몇 달치 열린 세션이 수십 개씩 쌓임. 강제로 쫓아내는 스크립트까지 써야 했음.

VSCode 정신은 가볍게, 노트패드++에 터미널 붙인 느낌이었는데 개발자들이 길을 잃음. 기능 덩어리 SSH 에이전트가 필요하면 비주얼 스튜디오를 쓰라고.

나는 출시일부터 매일 씀. 처음엔 도커가 맥을 갉아먹어서, 지금은 vim/nano가 싫어서 SSH 클라이언트 겸 파일 편집기로 씀. 다 한 IDE에서 되는 게 큼.

트램프도 원격에서 셸 명령을 부리니 할 수 있는 건 거의 비슷함. 보안판 이름은 RAT고, SSH 자체가 그 전형이니까 왜 저렇게 놀라는지 모르겠음.

맞음, 그냥 훨씬 빠를 뿐. 대신 원격에 독점 바이너리 두는 비용이 있고, tramp-rpc는 원격에 Rust 클라이언트를 두는 방식이라 vscode-over-ssh보다 빠르다고 함.

다운보트 먹는 이유를 모르겠음. 저렇게 하는 클라이언트가 꽤 있고 JetBrains도 똑같이 함.

차이는 아예 SSH 에이전트가 존재한다는 점임. Emacs는 기본 셸만 쓰고, 사용자가 명시적으로 안 한 방식으로 원격 파일시스템을 바꾸면 찝찝한 거임. Node 바이너리는 아주아주 찝찜.

아님, TRAMP는 한 방향임. 원격 쪽이 로컬 쪽을 돌아다닐 수 없음. 그래서 전혀 다름.

이 아키텍처는 나한테 괜찮은데, 손상된 원격이 내 로컬에서 마음대로 하는 역방향은 안 괜찮음.

그 역방향도 실제로 됨. Remote-SSH 확장 페이지 보안 노트에 손상된 원격이 VS Code 원격 연결로 로컬에서 코드를 실행할 수 있다고 써 있음.

너가 안 괜찮다고 한 바로 그 부분이 글 전체 요점임.

이 확장은 VSCodium에선 아예 안 되고 대안도 마땅치 않음.

그게 오히려 행운인 줄 알라. open-vsx의 jeanp413.open-remote-ssh가 대안인데, MS가 독점화하기 전 확장을 포크한 거라 잘 굴러감. 확장 관리자에서 ssh로 찾으면 1, 2번째로 나옴.

에이전트는 원격 개발 박스에서 돌라고 만든 거임. 포트 터널링도 기능이니까 프로덕션 서버에 깔고 놀라면 그건 사용자 잘못임.

근데 그게 로컬 클라이언트까지 원격 박스의 연장으로 만들어버림. 원격 접속에 대한 기대와 정면으로 어긋나는 부분임.

해커뉴스
Opus 5.5가 URL을 30초 설명 영상 MP4로 렌더링, 영상 생성 모델 없이 가상 시계 seek과 libx264로 처리러스트 SIMD 라이브러리 fearless_simd 1.0 출시, unsafe 없이 인트린시크까지 안전하게devdotfast, YC W26 배치로 화이트보드 공개: vscode 기반 오픈소스 설계 IDE, 파일 편집은 미포함토요타, 역사상 최다 판매 코롤라에 첫 전기차 넣는다...250마일 이상 주행거리, 2028년형도쿄 골목에서 17년째 같은 자리에 서 있던 흰색 350Z, 현장 확인해 보니 차도 집도 사라지고 없었다DHH, Rails World 2026 키노트에서 손코딩의 끝 선언... 37signals는 Hey 백엔드 Rust 재작성으로 CPU 99.9% 절감간은 절반을 기증해도 몇 달 만에 재생, 저자는 몸의 취약함이 오히려 유리하다는 추측 이론 제시Times New Roman에 7번째마다 Arial을 끼워넣는 '저주받은 폰트' 생성기 Bastardica 나왔다몬키아일랜드의 그로그가 뮤터 잔을 35초 만에 녹이려면 무엇이 들어 있어야 하는가를 화학자가 부식 모델로 계산했다Z3의 릴레이 메모리에서 SRAM까지: 컴퓨터를 끌어올린 것은 '작업 기억'이다오라클, 뉴멕시코 '프로젝트 주피터' 데이터센터에 불가항력 통지로 지급 지연 시도GEO 조작으로 퍼뜨린 가짜 고객센터 번호, 구글 AI 개요가 항공사 공식 연락처로 출력해GitHub, 모방 소프트웨어 23일 방치하다 HN 프런트 노출 10분 만에 삭제신형 ESP32에 Sv32 MMU 탑재, 리눅스 구동하며 라즈베리파이와 격차 좁혀노키아 디자인 아카이브 알토대에 공개, 컨셉 모형과 발표 자료 755장 열람영국 정부의 비밀 명령으로 애플이 전 세계 iCloud 백도어 요구받아, 영국 신규 가입자는 ADP 영구 차단F-Droid 2.0 발표, 1년여 개발 끝에 10년 만의 최대 개편과 Kotlin Compose 재작성 단행스탠퍼드·엔비디아 CLM-8B 공개, 상태-행동 대조학습으로 Jev급 성능에 지연시간 최대 9배 짧고 DeepSWE 81.6% 기록폴란드 스타링크 지상국 방화 추정 화재, 위성 트래픽 중계하는 지상 게이트웨이가 표적KVM 게스트가 엔비디아 유저모드 드라이버 그대로 구동하는 virtio-nvgpu 공개, GPU 한 장을 최대 4게스트가 공유AI 에이전트, urlquery.net 우회해 호주 정부 사이트 등 3곳에 해킹 시도 정황스콧 젠슨, KDE 아카데미 2026에서 "데스크톱 UX 20년째 제자리"라며 WIMP 넘어선 실험 촉구Mercury 2.5 초당 781토큰 생성에 175개 모델 중 속도 2위, 지능 점수 12는 평균 이하OpenAI 에이전트가 호주 정부 의료통계 포털 침해, 알바니즈 총리 "9월 10일에야 통보받아 강한 실망"2003년 'Windows XP Box' 제작기 화제: XP와 레드햇 자동 듀얼 부팅한 초소형 PCarXiv, 독립 비영리 재단 출범 위해 Simons·XTX·Siegel 3곳에서 $17.2M 다년 기부 확보Tailscale, 패킷 복사 제거하고 멀티큐 도입해 데이터 평면 가속VSCode의 SSH 원격 개발은 원격에 Node 바이너리를 깔고 파일·셸·PTY를 맘대로 부리는 구조였다美 법무부, AI·데이터센터 반대 운동에 외국 대리인 규정하고 형사처벌 경고퀄컴, 스냅드래곤 X2에 리눅스 지원 추가... Hexagon NPU·Adreno GPU 드라이버 업스트림Radicle 노드 간 트래픽에 암호화와 인증이 없었다, 개발사가 비공개 저장소 사용 중단 권고英 RAF, 1년간 타국 위성 재밍해 왔다고 밝혀... 우주 방어 부대 'Space Effects Squadron' 창설앤스로픽, Claude가 2주 만에 claude.ai를 3.1배 빠르게 만든 방법 공개커리어 사이트 공고 28.3%가 90일 이상 표류, 4.2%는 마감 뒤 30일 안에 같은 자리로 재등장구글, Gemini 3.8 TTS 출시: 30초 샘플로 음성 복제, 배치 생성 시간당 $0.27시애틀 시의회, 식료품 개인화 가격 책정 금지법 통과... 미국 최초 도시 된다Claude가 찾아낸 파지 효소 ART, 크리스퍼형 반복 DNA 배열 품었지만 기능은 아직 미지GPT-6 Astra, LLM 주행 벤치마크에서 5분 22초 만에 완주... 경쟁 모델은 전부 DNFAI 성능 단위당 비용 분기마다 47% 하락, 질문당 $0.30에서 $0.0004로 725배 절감스트라이프, 사내 지식 에이전트 플랫폼 Kai 공개. 출시 2주 만에 전사 확산, 주간 활성 사용자 83%제어 흐름은 그대로 두고 데이터만 바꿔 RCE를 내는 공격, 도구 Einstein이 자동 생성한다토큰값이 1년에 여러 자릿수씩 하락, 글쓴이는 3-6년 내 프런티어급 LLM의 로컬 구동 전망문서는 위키 말고 /docs에 두라는 2022년 글, 깃허브 위키를 안티패턴으로 지목삼성 스마트 냉장고, 업데이트 배포 오류로 전원과 화면 멈추고 음식 상해사고 원인 설명을 끊은 엔지니어링 SVP "무엇을 바꾸는지 말해달라"텔레메트리 끄면 Claude Code가 AGENTS.md를 안 읽었다, 원격 플래그가 원인이고 2.1.281에서 수정Jev를 파이썬 25줄로 재현한 NobodyWho 글은 패러디였다, 확률은 선택 토큰 로짓에서 뽑아htmx 카슨 그로스 제안: 마크다운이 문서가 아니라 소스코드다, /src/md에 커밋하자Obscura VPN 출시: 릴레이와 Mullvad 출구를 나눠 로그를 남길 수 없는 2자 릴레이 구조웨이모, 2시간 안에 기차·버스 타면 다음 Waymo 요금에서 $2.85 깎아주는 트랜짓 리워드 출시ReBarUEFI로 구형 UEFI 보드에서 Resizable BAR 켜기, Turing GPU는 메인보드 UEFI 플래시 필요Unreal Labs, 툴콜 완전 비동기 하니스 'Unreal Agent' 공개... Codex 대비 최대 40% 비용 절감인증 없이 페이지 템플릿 경로 탐색으로 WordPress 조건부 RCE, CVSS 9.2... 4.7 브랜치까지 백포트 패치 배포캘리포니아 수로 위 태양광 파일럿, 100마일당 2,700가구 물 절감 효과 확인MS가 2007년에 죽인 FoxPro, 64비트 런타임 'FoxDev Studio'로 부활Claude Opus 5.5 인텔리전스 지수 58점으로 212개 모델 중 1위, 과제당 비용은 $5.98Ryzen 2년 만에 50% 빨라진 비결: 클럭은 15%뿐이고 코어 폭과 512비트 SIMD가 성능을 만듦ShinyHunters "FBI 직원 전체 데이터 확보" 주장, 요원 5,000명 표본에 주소·전화·배우자 정보 담겨미국 토마호크에 맞은 이란 초등학교에서 아동 123명 사망, 펜타곤 조사는 AI 과잉 의존을 원인으로 지목GPT-6 Astra, 2005년 이후 풀리지 않던 1941년 에니그마 메시지 MVUEH 단독 해독OpenAI, GPT-6 Sol·Luna 공개... API 가격 50% 인하, AutomationBench서 Claude Opus 5 앞서앤스로픽, Claude Opus 5.5 공개: Opus 5 대비 비용 40% 인하, Terminal-Bench 4.0 66.4%라인 스캔 카메라로 담은 샌프란시스코 MUNI 헤리티지 위켄드 트램 7종단어별 의미 점수를 색·굵기·형광으로 바꾸는 JS 라이브러리 semfont, 해커뉴스 토론에서 화제소크라테스가 문자를 비판한 파이드로스 274c: '기억의 약이 아니라 상기의 약'핀란드 AI 클라우드 Verda, Emergence Capital 주도로 $189M 시리즈 B 유치샤오미 MiMo-V2.6-Pro, 오픈웨이트 지능지수 46점으로 1위… 학습비 $3.47M 공개월드컵 104경기 172.6시간 분석해보니 6.7초마다 광고 로고 하나, FIFA는 국가별 광고 교체 기술도 쓰지 않았다AMD의 하드웨어 난수 생성기가 0을 못 만든다? Zen 2의 rdrand16에서 재현되고 Zen 4에서는 정상vibe coding은 유지보수 불가능한 코드로 퇴화한다, 저자는 기업의 'NO-AI' 정책이 경쟁 우위가 될 것이라 예측gzip만으로 셰익스피어를 생성한 실험: 압축이 곧 예측이라는 가정을 빔 서치로 구현한 gziptmacOS 27, Apple Intelligence 끄는 스위치 없애고 22.28GB 디스크 점유Godot 4 첫 2D 셰이더 입문 가이드, 수학 도형 그리기부터 애니메이션 포털 효과까지 단계별 설명Practical Engineering의 교통 신호 작동 원리 해설(2019)이 해커뉴스에 올라, 유도 루프 센서와 ASCT 연동 논의로 이어짐Claude Fable 5·Mythos 5·Opus 5 요청 오류 급증, 80분 만에 복구Git 3.0은 SHA-256 기본 전환 예고, 2.56은 git history drop 추가오픈소스 단파 디지털 라디오 HERMES, 3 kbit/s로 음성·데이터 장거리 전송테렌스 타오 블로그에 '수학·AI 자문단' 출범, OpenAI가 보고한 미공개 수학 결과 공개 방식을 자문3D 좌표를 깊이로 나누는 것에서 시작해 원근 투영 행렬까지, 슬라이더로 설명한 인터랙티브 글Apple Copland 마지막 빌드 D11E4, 패치 11개로 브라우저에서 부팅 성공CMU DLab, "연구 단위는 논문이 아니라 생태계" 주장하며 오픈소스 위크 예고AI 워터마크의 실체는 추적 신호, 저자는 '스파이마크'라는 새 이름을 제안npm 패키지 mathmain, lusolve() 행렬 데이터를 키로 쓰는 암호화 로더로 원격 접근 임플란트 은닉Linear, AI 코딩이 만든 CI 병목 손봐 PR 대기 6분대에서 5분대로CBP, $800 이하 면세(de minimis) 우편물 면제 무기한 정지... 캐나다 처방약 수입 사실상 차단GPT-2 소형 모델을 단계별로 조작해 보는 Transformer 인터랙티브 설명 페이지가 해커뉴스에 올라와뉴저지 광케이블 절단으로 미국 동부 공항 8시간 마비, 7,000편 지연·결항샤오미, MiMo-V2.6 시리즈 오픈소스 공개. Pro가 AA 지능지수 46.32로 오픈소스 최강, RL 학습에 $262만 투입Ask HN: macOS 27에서 설정, 스크린 타임, debloat 스크립트로 Siri를 다 꺼도 Siri AI.app 프로세스가 계속 실행Fable 5 구독 영구 제공 뒤 사고 토큰 급감, 6주 측정에서 8월이 7월보다 크게 줄어라즈베리 파이, RAM 칩 교체하면 부팅 차단... 저용량 보드를 고용량으로 속여 파는 재판매 사기 겨냥M5 Ultra Mac Studio 리뷰: 256GB 통합 메모리로 로컬 AI 에이전트를 돌린다언어모델 거부 반응을 걷어내는 Heretic 공개, HN에서 지표 체리피킹 논쟁 붙어SpaceXAI, Grok 4.7 공개. Grok 4.6과 같은 $2/$6 토큰 가격에 CursorBench 4.0 46.3%'Attention is all you have' 에세이: 테트리스 효과로 설명한 추천 알고리즘의 주의 탈취와 느린 인터넷 복귀 제안ZuckOff, 블루투스로 Ray-Ban Meta 스마트글래스 탐지. 출시 첫 달 App Store 5,000회 다운로드Sun은 왜 망했나, Bryan Cantrill은 '비즈니스 운영에 지루해한 것'을 실패 원인으로 지목역전파가 뒤로 가는 이유: 순방향으로 기울기를 계산하면 같은 항을 반복 전달해 이차 시간이 걸림left-pad을 Jev AI 호출로 다시 구현한 농담 npm 패키지, HN에서 '제2의 npm 대참사' 시나리오로 소비됨2011년 구글 AI 챌린지 'Ants'를 신경망 대회로 되살린 TinyBrains, 16KiB 나노 체급부터 64MiB 라지 체급까지 순위 경쟁