1 पॉइंट द्वारा GN⁺ 2025-02-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 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 टिप्पणियां

 
GN⁺ 2025-02-09
Hacker News की राय
  • एक महीने से software पर लंबा लेख लिखने की कोशिश कर रहा था। Kurt इस बात को लेकर चिंतित है कि वह ब्लॉग पर लिख नहीं रहा। इसलिए छोटा लेख लिखने का फैसला किया

    • जिस software पर काम कर रहे थे, उसके बारे में संक्षेप में लिखा
  • VSCode कैसे काम करता है, इसे जितना ज़्यादा जानो, उतना लगता है कि यह अस्थायी जुगाड़ों पर टिका है। सिर्फ SSH extension को देखें तो workspace URI के दो format हैं

    • एक host name है और एक hex में encoded JSON document
    • अगर host name में uppercase अक्षर हों तो अतिरिक्त जानकारी चाहिए
    • SSH connection server पर install होने वाले extensions को configure कर सकता है। लेकिन बहुत ज़्यादा install कर दो तो Windows host से connect नहीं कर पाते
  • मुझे security issue समझ नहीं आता। अगर SSH से किसी machine में login कर सकते हो और socket forwarding कर सकते हो, तो और भी काम कर सकते हो

    • क्या समस्या यह है कि उसी network पर कोई व्यक्ति SSH के बिना forwarded port से connect कर सकता है?
    • एक user के रूप में मुझे अच्छा लगता है कि VSCode का SSH system ठीक से काम करता है
  • मैं network server चलाता हूँ और यह बड़ी समस्या है कि छात्र OpenSSH client को समझ नहीं पाते

    • मैं छात्रों को VSCode remote server plugin इस्तेमाल न करने को कहता हूँ
    • जिन छात्रों का disk usage 100MB से ज़्यादा होता है, वे सब VSCode user निकलते हैं
    • मैंने user process limit 45 पर set की है। छात्र अगर warning नज़रअंदाज़ करें तो process limit से टकरा जाते हैं
    • मैं एक script इस्तेमाल करता हूँ जो हर 10 सेकंड में .vscode-server process को kill कर देती है
  • VSCode की SSH editing सुविधा अच्छी तरह काम करती है। अब remote machine पर vim, nano, micro का इस्तेमाल नहीं करना पड़ता

    • agent बीच में बाधा नहीं बनता, इसलिए काम आसान हो जाता है
    • security risk हो सकता है, लेकिन development experience बेहतरीन है
  • मैंने सीखा कि remote code execution संभव है। development tools पर गलत भरोसा अक्सर पछतावे में बदल जाता है

    • SSH 90s का solution है। यह बस Telnet में कुछ features जोड़ देने जैसा है
    • SSH के जरिए बनी बहुत-सी चीजें inefficient हैं
    • हमने सही tools नहीं बनाए। हमने बस पुराने tools में और features जोड़ दिए
  • "SSH agent" शब्द ही भ्रमित करता है। आम तौर पर इसका मतलब authentication token cache करने वाला daemon होता है

  • जो लोग sshfs की सिफारिश करते हैं, वे VSCode SSH Remote environment के फायदे नहीं समझते

    • पूरा development environment remote पर local की तरह चला सकते हैं
    • पुराने machine या thin client को full workstation में बदला जा सकता है
    • VSCode marketplace में बहुत से plugin हैं जो security threat बन सकते हैं। SSH Remote या VS Tunnel उनमें शामिल नहीं हैं
  • development server पर VSCode remote editing की अनुमति देना असहज लगता है। production server पर तो और भी ज़्यादा

    • production server पर VSCode remote इस्तेमाल करना पागलपन है
    • बाकी features अपेक्षित functionality हैं
  • local VSCode instance thin client बन जाता है, और remote instance भारी काम संभालता है

    • छोटे laptop से powerful workstation पर SSH connect करने के लिए यह उपयुक्त है
    • powerful workstation से छोटे VM/VPS पर SSH connect करने की स्थिति में sshfs या किसी अन्य remote file system mount setup की सिफारिश करूंगा