HTTP CONNECT सहाय्यकाने इच्छित SSH सर्व्हरकडे बोगदा परत दिल्यानंतर, तो प्रवाह Paramiko ला द्या:

with paramiko.SSHClient() as client:
    client.load_system_host_keys()
    client.connect('ssh.example.com',
                   username='operator',
                   sock=tunnel,
                   banner_timeout=10,
                   auth_timeout=10)
    # Use the verified SSH connection.

उदाहरणातील होस्ट बदला आणि परिनियोजनाचा योग्य known-hosts डेटा लोड करा. tunnel आधीच त्याच सर्व्हरकडे नेले पाहिजे. connect ला दिलेले होस्टनाव SSH होस्ट की ओळखते, प्रॉक्सी नाही.

sock इंटरफेस उघडा सॉकेट किंवा सॉकेटसदृश वस्तू स्वीकारतो. तो तुमच्यासाठी HTTP वाटाघाटी करत नाही. तो परत देण्यापूर्वी, कनेक्टरने हे केले पाहिजे:

  1. प्रॉक्सीशी कनेक्ट होऊन गंतव्यासाठी वैध CONNECT विनंती पाठवणे.
  2. समर्थित कोणतेही प्रॉक्सी प्रमाणीकरण पूर्ण करणे आणि यशस्वी बोगदा स्थिती सत्यापित करणे.
  3. संपूर्ण प्रॉक्सी हेडर विभाग वाचणे, आंशिक वाचन हाताळणे आणि सीमेपलीकडील बाइट जतन करणे.
  4. सेटअप मर्यादित करणे आणि नाकारलेले/त्रुटीचे सॉकेट त्याच्या साफसफाईच्या मार्गाने बंद करणे.

त्या कामासाठी देखभाल केलेला कनेक्टर वापरा. एका प्राप्ती बफरमध्ये इंग्रजी यश वाक्य शोधल्यास विभागलेल्या स्थिती ओळी, बदलणारा कारण मजकूर आणि अपूर्ण हेडर सुटतात. यशस्वी प्रॉक्सी TCP कनेक्शन हा स्वीकारलेला SSH बोगदा नाही.

प्रॉक्सीने विनंती केलेला SSH पोर्ट अनुमत केला पाहिजे; वेब ब्राउझिंग परवानगी पोर्ट 22 वर CONNECT प्रवेश स्थापित करत नाही. 407 SSH लॉगिनपूर्वी येतो, तर SSH खाते अयशस्वी बोगद्यानंतर येते. ही खाती वेगळी ठेवा.

पूर्ण झाल्यावर SSH क्लायंट आणि कनेक्टरच्या मालकीची संसाधने बंद करा. कार्याने त्याचे वाचन थांबवणे स्वतः जिवंत कनेक्शन बंद करत नाही.

संबंधित लेख