
Fly.io: VSCode-ის SSH აგენტი დისტანციურ სერვერზე Emacs-ის Tramp-ზე ბევრად მეტს აკეთებს
Fly.io-ს ანალიზის თანახმად, VSCode-ის SSH აგენტი დისტანციურ სერვერზე Node-ს აყენებს, WebSocket-ით უკავშირდება რედაქტორს და ფაილებზე თავისუფალ წვდომას იღებს — Emacs-ის Tramp-ისგან განსხვავებით.
Fly.io-ს ბლოგზე 2025 წლის 7 თებერვალს გამოქვეყნდა ინჟინერ თომას პტაჩეკის ანალიზი იმის შესახებ, თუ როგორ ამუშავებს VSCode ფაილებს დისტანციურ მანქანებზე SSH-ის გავლით. ავტორის თქმით, ეს მექანიზმი სერვერში გაცილებით ღრმად ერევა, ვიდრე მისი ძველი ანალოგი — Emacs-ის Tramp. პოსტის სათაურია „VSCode's SSH Agent Is Bananas“.
რატომ დაინტერესდა Fly.io
Fly.io-ს სურს, რომ მისი პლატფორმა იმავე პროცესში ჩაერთოს, რომელსაც VSCode დისტანციური რედაქტირებისთვის იყენებს. დეველოპერების უმეტესობა დღეს VSCode-ს ირჩევს, მათ შორის იმ ვერსიებს, რომლებიც LLM-ებით კოდს აწარმოებენ. LLM-ის დაწერილი კოდი გაცილებით გამოსადეგი ხდება, როცა მოდელსა და გაშვების გარემოს შორის კავშირი დახურულია: მოდელი კოდს წერს, აგენტი მას უშვებს, შეცდომები მოდელს უბრუნდება და ციკლი მეორდება. პტაჩეკის თქმით, ამ ციკლის საკუთარ ლეპტოპზე გაშვება არ ღირს, რადგან LLM-ები საზღვრებს არ იცავენ და მიმდინარე პროექტთან ერთად სისტემურ კონფიგურაციასაც ისე „გადაამუშავებენ“. ამიტომ უფრო უსაფრთხო ადგილია სუფთა Linux-ის ინსტანცია, რომელიც წამებში ირთვება.
Tramp და VSCode-ის აგენტი
Emacs-ის Tramp დისტანციური რედაქტირების „სულიერი წინამორბედია“. საკმარისია ის ინტერაქტიულ გარემოსთან დაუკავშიროთ, როგორც წესი, SSH-ის სესიასთან, სადაც Bourne shell-ის ბრძანებები სრულდება. მაშინ Tramp Emacs-ს ამ გარემომდე ავრცელებს იმ საშუალებებით, რაც სერვერზე უკვე არსებობს. VSCode-საც აქვს მსგავსი ფუნქცია. ლოგიკური იქნებოდა, ის შემცირებული Tramp ყოფილიყო, Elisp-ის ნაცვლად TypeScript-ით. თუმცა, პტაჩეკის თქმით, VSCode „სრულმასშტაბიან შემოჭრას“ აწყობს: Bash-ის სკრიპტი დისტანციურ სერვერზე აგენტს ჩამოტვირთავს, თან Node-ის ბინარულ ინსტალაციასაც. აგენტი გადამისამართებული პორტებით SSH-ის გავლით მუშაობს და WebSocket-კავშირს ხსნის უკან, თქვენთან გაშვებული VSCode-ის ინტერფეისისკენ.
რისი გაკეთება შეუძლია აგენტს
ამ კავშირის პროტოკოლს შეუძლია ფაილურ სისტემაში თავისუფლად გადაადგილება, ნებისმიერი ფაილის რედაქტირება, საკუთარი shell-ის PTY-პროცესების გაშვება და სერვერზე თავის დამკვიდრება. უსაფრთხოების სფეროში ასე მოქმედი ინსტრუმენტებისთვის სახელი არსებობს. პტაჩეკი მას პირდაპირ არ ამბობს და მხოლოდ აღნიშნავს, რომ სახელს მღრღნელებთან საერთო აქვს — გამჭვირვალე მინიშნება დისტანციური წვდომის ტროიანზე.
პრაქტიკული დასკვნა
პტაჩეკის თქმით, დეველოპმენტის სერვერებზე VSCode-ით დისტანციური რედაქტირება მას „ოდნავ შეაწუხებდა“, წარმოების გარემოში ინციდენტის დროს კი ეს ძლიერ გააბრაზებდა. პოსტის ბოლოს Fly.io აღნიშნავს, რომ Fly Machine-თან VSCode-ში კუსტომური კავშირის მისაღებად ამ დეტალების ცოდნა საჭირო არ აღმოჩნდა. აღმოჩენამ სამუშაო პროცესს ხელი არ შეუშალა — უბრალოდ გასაზიარებლად საინტერესო იყო.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.