स्थापित HTTP CONNECT टनल को Paramiko को सौंपें
SSH होस्ट-कुंजी सत्यापन बनाए रखते हुए अधिकृत HTTP CONNECT मार्ग से Paramiko कनेक्ट करें।
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 पर बातचीत नहीं करता। इसे लौटाने से पहले, कनेक्टर को चाहिए:
- प्रॉक्सी से कनेक्ट होकर गंतव्य के लिए वैध CONNECT अनुरोध भेजना।
- समर्थित कोई भी प्रॉक्सी प्रमाणीकरण पूरा करना और सफल टनल स्थिति को मान्य करना।
- पूरा प्रॉक्सी हेडर अनुभाग पढ़ना, आंशिक पढ़ाई संभालना और सीमा से आगे के बाइट सुरक्षित रखना।
- सेटअप सीमित करना और अस्वीकृत/त्रुटिपूर्ण सॉकेट को अपने सफ़ाई पथ से बंद करना।
उस काम के लिए रखरखाव किया गया कनेक्टर उपयोग करें। एक प्राप्ति बफ़र में अंग्रेज़ी सफलता वाक्यांश खोजने से विभाजित स्थिति पंक्तियाँ, बदलता कारण पाठ और अपूर्ण हेडर छूट जाते हैं। सफल प्रॉक्सी TCP कनेक्शन स्वीकृत SSH टनल नहीं है।
प्रॉक्सी को अनुरोधित SSH पोर्ट की अनुमति देनी चाहिए; वेब ब्राउज़िंग अनुमति पोर्ट 22 तक CONNECT पहुँच स्थापित नहीं करती। 407 SSH लॉगिन से पहले होता है, जबकि SSH खाता विफलता टनल के बाद होती है। इन खातों को अलग रखें।
समाप्त होने पर SSH क्लाइंट और कनेक्टर के स्वामित्व वाले संसाधन बंद करें। किसी कार्य का अपनी पढ़ाई रोकना स्वयं जीवित कनेक्शन बंद नहीं करता।