عامل SSH VSCode Is Bananas (2025)
آدرس مقاله: https://fly.io/blog/vscode-ssh-wtf/ آدرس نظرات: https://news.ycombinator.com/item?id=49822555 امتیاز: 276 # نظرات: 170
ما علاقه مندیم که در جریانی که VSCode برای انجام ویرایش از راه دور از طریق SSH استفاده می کند، ادغام شود، زیرا همه در حال حاضر از VSCode استفاده می کنند، و به ویژه، آنها از فورک های VSCode استفاده می کنند که کد را با LLM تولید می کند.
زمانی که LLM ها کد را اشتباه می گیرند، "توهم" نامیده می شود. "مهندسی" همان چیزی است که وقتی مردم انجام می دهند به آن می گوییم.
اگر بدانید چه کاری انجام می دهید، کد تولید شده توسط LLM در حالت کلی مفید است. اما اگر بتوانید حلقه بین LLM و محیط اجرا را ببندید (با تنظیم "عامل") بسیار مفید است. در این مورد حرف های زیادی برای گفتن وجود دارد، اما در حال حاضر: این یک پادزهر نیمه موثر برای توهم است: LLM کد را تولید می کند، داربست عامل کد را اجرا می کند، کد خطا ایجاد می کند، عامل آن را به LLM برمی گرداند، فرآیند تکرار می شود.
بنابراین، بدیهی است که مشکل اینجاست که نمیخواهید این فرآیند توسعه تکراری روی لپتاپ توسعهدهنده شما اتفاق بیفتد، زیرا LLMها مشکلات مرزی دارند، و پیکربندی سیستم شما را با خوشحالی در پروژه Git که اتفاقا در آن کار میکنید تکرار میکنند. کاری که واقعا دوست دارید بتوانید انجام دهید: اجرای یک عامل حلقه بسته است. یک نمونه لینوکس تمیز که فورا می چرخد و به هیچ وجه نمی تواند شما را خراب کند. شما با این به کجا می رویم.
Emacs میزبان پیشین معنوی سیستم های ویرایش از راه دور است، لکه ای از Elisp بسیار مفید به نام "Tramp". اگر میتوانید Tramp را به هر نوع محیط تعاملی متصل کنید - معمولا یک جلسه SSH - جایی که میتواند دستورات پوسته Bourne را اجرا کند، میتواند Emacs را به آن محیط گسترش دهد.
بنابراین، VSCode یک ویژگی مانند Tramp دارد. کدام، تمیز، درست است؟ ممکن است فکر کنید، Tramp را بگیرید، شاید کمی آن را ساده کنید، Elisp را برای Typescript تغییر دهید.
برخلاف Tramp، که در خارج از زمین در اتصال از راه دور زندگی میکند، VSCode یک تهاجم در مقیاس کامل را اجرا میکند: یک استیدر قطعه Bash را اجرا میکند که یک عامل، از جمله نصب باینری Node را دانلود میکند.
عامل روی SSH ارسال شده توسط پورت اجرا می شود. این یک اتصال WebSockets را به قسمت جلویی VSCode در حال اجرا شما ایجاد می کند. پروتکل اساسی در آن اتصال می تواند:
در دنیای امنیت، نامی برای ابزارهایی وجود دارد که به این روش کار می کنند. من آن را با صدای بلند نمی گویم، زیرا این برای VSCode منصفانه نیست، اما بیایید بگوییم که این نام ماهیت بدی دارد.
من از این که به مردم اجازه بدهم VSCode-remote-edit چیزهایی را روی سرورهای توسعه دهندگان برنامهنویس بگذارم، کمی عصبی میشوم، و اگر این اتفاق در طی یک حادثه در مورد چیزی در حال تولید رخ دهد، نگران میشوم.
به نظر میرسد که ما برای داشتن یک اتصال سفارشی به Fly Machine که در VSCode کار میکند، لازم نیست به هیچیک از اینها اهمیت بدهیم، بنابراین هیچکدام از اینها به هیچ وجه مهم نیست، اما: ما تصمیم گرفتیم دوباره یک وبلاگ باشیم، بنابراین: ما باید این را یاد میگرفتیم، و حالا شما هم این کار را انجام میدهید.
متن اصلی (انگلیسی)
VSCode's SSH Agent Is Bananas (2025)
Article URL: https://fly.io/blog/vscode-ssh-wtf/ Comments URL: https://news.ycombinator.com/item?id=49822555 Points: 276 # Comments: 170