
Fly.io: סוכן ה-SSH של VSCode פולשני הרבה יותר ממה שנדמה
מהנדס Fly.io תומאס פטצ'ק מסביר כיצד VSCode עורך קבצים במכונות מרוחקות: סקריפט Bash מתקין סוכן עם Node על השרת, הסוכן פותח WebSocket לממשק העורך ויכול לערוך קבצים, להפעיל מעטפות ולשהות במערכת.
מהנדס Fly.io תומאס פטצ'ק פרסם סקירה מפורטת של האופן שבו VSCode עורך קבצים במכונות מרוחקות דרך SSH. המבנה שתואר שם פולשני הרבה יותר מהכלי הוותיק שהוא דומה לו. הפוסט, "VSCode's SSH Agent Is Bananas", פורסם בבלוג של Fly ב-7 בפברואר 2025.
למה Fly.io התעניינו בזה
Fly.io רוצה להשתלב באותו תהליך ש-VSCode משתמש בו לעריכה מרחוק, משום שרוב המפתחים עובדים היום ב-VSCode, כולל גרסאות נגזרות שמייצרות קוד עם מודלי LLM. קוד שמיוצר על ידי LLM נעשה שימושי בהרבה כשהמעגל בין המודל לסביבת ההרצה סגור: המודל כותב קוד, תשתית הסוכן מריצה אותו, השגיאות חוזרות למודל והתהליך חוזר על עצמו. מעגל כזה, כותב פטצ'ק, בדיוק לא כדאי להריץ על המחשב הנייד שלך, משום שמודלי LLM לא מכבדים גבולות וישנו בשמחה גם את הגדרות המערכת ולא רק את הפרויקט שעליו אתה עובד. מקום בטוח יותר הוא מכונת Linux נקייה שעולה תוך שניות.
Tramp מול הסוכן של VSCode
Tramp של Emacs הוא "האב הרוחני" של עריכה מרחוק. די לחבר אותו לסביבה אינטראקטיבית, בדרך כלל הפעלת SSH, שבה אפשר להריץ פקודות Bourne shell, והוא מרחיב את Emacs למכונה הזו תוך שימוש במה שכבר קיים בה. ל-VSCode יש תכונה דומה. אפשר היה לצפות ל-Tramp מפושט, עם TypeScript במקום Elisp. אבל לא: לדברי פטצ'ק, VSCode "פותח במתקפה בקנה מידה מלא" — סקריפט Bash מוריד לסביבה המרוחקת סוכן, כולל התקנה בינארית של Node. הסוכן פועל דרך SSH עם הפניית פורטים ופותח חיבור WebSocket חזרה לממשק ה-VSCode שרץ אצלך.
מה הסוכן יודע לעשות
הפרוטוקול של אותו חיבור יכול לשוטט במערכת הקבצים, לערוך קבצים באופן חופשי, להפעיל תהליכי PTY משל עצמו ולהישאר בסביבה גם לאחר מכן. פטצ'ק מציין שלעולם האבטחה יש שם לכלים שמתנהגים כך, אך נמנע מלהגיד אותו במפורש. הוא רק רומז שהשם "ממשפחת המכרסמים", רמז שקוף לטרוג'ן גישה מרחוק.
המשמעות המעשית
פטצ'ק אומר שהוא היה "קצת מודאג" מעריכה מרחוק של VSCode על שרתי פיתוח, ו"מתפוצץ מזעם" אילו זה קרה במהלך אירוע תקלה במערכת פרודקשן. הפוסט מסתיים בהערה מעשית: Fly.io גילתה שלא היה צורך להבין בכל זה כדי לחבר חיבור מותאם אישית למכונת Fly Machine מתוך VSCode. הממצא לא הפריע לעבודה שלהם — הם רק חשבו שכדאי לדעת אותו.
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.