-
VSCode और remote editing
- VSCode में SSH के ज़रिए remote editing को सपोर्ट करने की सुविधा है।
- कई यूज़र VSCode और LLM (large language model) का उपयोग करके code generation कर रहे हैं।
- जब LLM गलत code बनाता है, तो उसे "hallucination" कहा जाता है, और इसे हल करने के लिए "agent" सेटअप के माध्यम से LLM और execution environment के बीच loop को बंद करना महत्वपूर्ण है।
- यह प्रक्रिया इस तरह चलती है कि LLM code बनाता है, agent उस code को चलाता है, errors पैदा करता है, और उन्हें LLM को feedback देकर यह चक्र दोहराया जाता है।
-
डेवलपमेंट environment में समस्याएँ
- ऐसा बार-बार दोहराया जाने वाला development process डेवलपर के laptop पर होना वांछनीय नहीं है।
- क्योंकि LLM system configuration को भी प्रभावित कर सकता है, इसलिए ऐसे काम किसी साफ-सुथरी Linux instance में करना बेहतर है।
-
Emacs और Tramp
- Emacs, Tramp नाम के उपयोगी Elisp के माध्यम से remote editing system को सपोर्ट करता है।
- Tramp, SSH session के ज़रिए Bourne shell commands चला सकने वाले interactive environment से कनेक्ट हो सकता है।
-
VSCode का approach
- VSCode में Tramp जैसी functionality है, लेकिन Tramp के विपरीत यह remote connection में समग्र रूप से दखल देने की कोशिश करता है।
- यह Bash snippet stager चलाकर agent डाउनलोड करता है, जिसमें Node binary installation भी शामिल है।
- agent, port-forwarded SSH के माध्यम से चलता है और WebSockets connection के ज़रिए VSCode frontend से जुड़ता है।
- इस connection का base protocol file system को browse कर सकता है, मनचाही files edit कर सकता है, अपना shell PTY process शुरू कर सकता है, और persistence भी रख सकता है।
-
सुरक्षा चिंताएँ
- development server पर VSCode को remote editing के लिए बिना सोचे-समझे इस्तेमाल करने से sensitive information या infrastructure protection में समस्याएँ पैदा हो सकती हैं।
- खासकर जब वास्तविक production environment में समस्या आई हो, तब VSCode remote editing का उपयोग करना बेहद जोखिम भरा हो सकता है।
-
निष्कर्ष
- Fly.io के भीतर, Fly Machine और VSCode को सीधे जोड़ने के लिए इस तरह के जटिल agent की अनिवार्य रूप से आवश्यकता नहीं है।
- लेकिन ब्लॉग के उद्देश्य से VSCode के remote connection तरीके की जाँच की गई, और इस जाँच के दौरान ऊपर बताई गई बातें सामने आईं।
1 टिप्पणियां
Hacker News की राय
एक महीने से software पर लंबा लेख लिखने की कोशिश कर रहा था। Kurt इस बात को लेकर चिंतित है कि वह ब्लॉग पर लिख नहीं रहा। इसलिए छोटा लेख लिखने का फैसला किया
VSCode कैसे काम करता है, इसे जितना ज़्यादा जानो, उतना लगता है कि यह अस्थायी जुगाड़ों पर टिका है। सिर्फ SSH extension को देखें तो workspace URI के दो format हैं
मुझे security issue समझ नहीं आता। अगर SSH से किसी machine में login कर सकते हो और socket forwarding कर सकते हो, तो और भी काम कर सकते हो
मैं network server चलाता हूँ और यह बड़ी समस्या है कि छात्र OpenSSH client को समझ नहीं पाते
VSCode की SSH editing सुविधा अच्छी तरह काम करती है। अब remote machine पर vim, nano, micro का इस्तेमाल नहीं करना पड़ता
मैंने सीखा कि remote code execution संभव है। development tools पर गलत भरोसा अक्सर पछतावे में बदल जाता है
"SSH agent" शब्द ही भ्रमित करता है। आम तौर पर इसका मतलब authentication token cache करने वाला daemon होता है
जो लोग sshfs की सिफारिश करते हैं, वे VSCode SSH Remote environment के फायदे नहीं समझते
development server पर VSCode remote editing की अनुमति देना असहज लगता है। production server पर तो और भी ज़्यादा
local VSCode instance thin client बन जाता है, और remote instance भारी काम संभालता है