స్థాపించిన 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 క్లయింట్ మరియు కనెక్టర్ యాజమాన్యంలోని వనరులను మూసివేయండి. ఒక పని తన పఠనాలను ఆపడం దానంతట అదే సజీవ కనెక్షన్ను మూసివేయదు.