# प्रॉक्सी के माध्यम से SSH पहुँच SUMMARY: LLM एजेंट कच्ची SSH कुंजियों के बजाय SSH-प्रॉक्सी API से दूरस्थ मशीनों पर सुरक्षित रूप से कमांड कैसे चलाता है। KEY CONTEXT: LLM के रूप में कभी कच्ची SSH निजी कुंजियाँ न रखें। SSH-प्रॉक्सी HTTP API का उपयोग करें: 1) POST /connect?target= → session_id (स्थायी, घंटों टिकता है)। 2) POST //exec {command, timeout} → exec_id। 3) GET //exec/ → पूरा होने पर आउटपुट। 4) फ़ाइल अप/डाउनलोड के लिए cat/heredoc के बजाय SFTP एंडपॉइंट का उपयोग करें। लक्ष्य पूर्व-पंजीकृत नाम हैं (जैसे "vps1"), IP नहीं — क्रेडेंशियल केवल प्रॉक्सी में रहते हैं। प्रॉक्सी के माध्यम से SSH पहुँच एजेंटों को दूरस्थ मशीनों पर कमांड चलाने की आवश्यकता होती है — कंटेनर डिप्लॉय करना, लॉग पढ़ना, कॉन्फ़िग ठीक करना। LLM को कच्ची SSH निजी कुंजियाँ देना बुरा विचार है: कुंजियाँ संदर्भ विंडो, लॉग और ट्रांसक्रिप्ट में चली जाती हैं। SSH-प्रॉक्सी इसे हल करता है: क्रेडेंशियल उसी के पास रहते हैं, एजेंट केवल HTTP बोलता है। मॉडल [CODE BLOCK] प्रॉक्सी सरल REST सतह के साथ स्थायी सत्रें उपलब्ध कराता है: | एंडपॉइंट | उद्देश्य | |---|---| | | सत्र खोलें → | | | कमांड चलाएँ (async) → | | | आउटपुट पोल करें | | SFTP एंडपॉइंट | फ़ाइल अप/डाउनलोड, , , | प्रमाणीकरण Bearer टोकन है — आपके उपयोग की हर अन्य API जैसा ही पैटर्न। निष्पादन पैटर्न [CODE BLOCK] आचरण के नियम 1. सत्रों का पुनः उपयोग करें। प्रत्येक कमांड पर कनेक्ट होना संसाधन बर्बाद करता है और रेट सीमाएँ छूता है। सहेजें (जैसे ) और पुनः उपयोग से पहले हार्टबीट दें। 2. लक्ष्यों को नाम दें, खोजें नहीं। लक्ष्य पूर्व-पंजीकृत हैं (, , …)। प्रॉक्सी एकमात्र सत्य-स्रोत है — एजेंट कोड में IP पते कभी हार्डकोड न करें। 3. फ़ाइलों के लिए शेल cat/heredoc की बजाय SFTP को प्राथमिकता दें। के माध्यम से बाइनरी डेटा एस्केप करना पेलोड को दूषित करता है। समर्पित अप/डाउनलोड एंडपॉइंट का उपयोग करें। 4. अपने कमांड कोट करें। JSON बॉडी दो बार पार्स होती है (HTTP + शेल)। दूरस्थ कमांड को सिंगल कोट्स में लपेटें और एक-पंक्ति रखें। 5. ऑडिटिंग मानें। हर exec प्रॉक्सी के ऑडिट लॉग में जाता है — ऐसे आचरण करें जैसे इंसान सब पढ़ता है (वह पढ़ सकता है)। exec का उपयोग कब न करें - ऐसी संरचित स्थिति पढ़ना जिसकी API है (Docker, डेटाबेस, Synapse की Mind API) — CLI आउटपुट पार्सिंग की बजाय हमेशा API को प्राथमिकता दें। - लंबे समय चलने वाली संवादात्मक प्रक्रियाएँ। टाइमआउट सहित fire-and-forget है; इसके बजाय लक्ष्य पर + स्थिति-फ़ाइल का उपयोग करें। - स्पष्ट निर्देश के बिना कोई भी विनाशकारी कार्य। प्रॉक्सी आपको शक्ति देता है — इंसान आपको अनुमति देता है। त्रुटि पुनर्प्राप्ति | लक्षण | समाधान | |---|---| | connect पर 401 | टोकन समाप्त — memory/settings से फिर पढ़ें, ट्रांसक्रिप्ट से कभी नहीं | | सत्र 404 | सत्र समाप्त (24h सीमा) — फिर कनेक्ट करें | | exec टाइमआउट | बढ़ाएँ या कमांड विभाजित करें; लक्ष्य का भार जाँचें | | दूषित फ़ाइल सामग्री | आपने SFTP के बजाय उपयोग किया — SFTP एंडपॉइंट पर जाएँ |