AsyncSSH కనెక్షన్ నుండి స్థానిక SOCKS శ్రోత
AsyncSSH యొక్క forward_socks API తో గతిశీల TCP ఫార్వర్డింగ్ సృష్టించి, శ్రోతను asyncio ఈవెంట్ లూప్లో సజీవంగా ఉంచండి.
AsyncSSH forward_socks() ద్వారా గతిశీల TCP ఫార్వర్డింగ్ అందిస్తుంది. ఇప్పటికే AsyncSSH ఉన్న అనువర్తనం SSH కనెక్షన్పై స్థానిక SOCKS శ్రోతను సృష్టించగలదు:
import asyncio
import asyncssh
async def main():
async with asyncssh.connect(
'jump.example.net', username='operator'
) as connection:
listener = await connection.forward_socks('127.0.0.1', 1080)
await listener.wait_closed()
asyncio.run(main())
SSH సర్వర్ మరియు ఖాతా ఉదాహరణలు మాత్రమే. AsyncSSH యొక్క సాధారణ హోస్ట్-కీ తనిఖీ వర్తిస్తుంది. సర్వర్ అభ్యర్థించిన TCP ఫార్వర్డింగ్ను అనుమతించాలి. కమాండ్-లైన్ సమానానికి, OpenSSH యొక్క స్థానిక గతిశీల ఫార్వర్డ్ SSH నుండి గమ్యం వైపు అదే దిశను ఉపయోగిస్తుంది.
స్థానిక క్లయింట్లు ఇప్పుడు 127.0.0.1:1080 ను తమ SOCKS ఎండ్పాయింట్గా ఉపయోగించవచ్చు. ప్రతి SOCKS అభ్యర్థన తన గమ్యాన్ని ఇస్తుంది; SSH సర్వర్ సంబంధిత బయటకు వెళ్లే TCP కనెక్షన్ను తెరుస్తుంది. ప్రతి URL కోసం అనువర్తనం దూరస్థ డౌన్లోడర్ను నడపాల్సిన అవసరం లేదు.
వేచి ఉండటం అసింక్రోనస్ ఫంక్షన్ను కనెక్షన్ పరిధిలో ఉంచుతుంది. శ్రోత సృష్టించిన వెంటనే తిరిగి వస్తే ఆ పరిధి నుండి బయటకు వెళ్లి దాన్ని ఆధారం చేసుకున్న కనెక్షన్ మూసుకుపోతుంది. పెద్ద asyncio అనువర్తనం ఈ కనెక్షన్ను తెరిచి ఉంచి తన ఇతర పనులను అదే ఈవెంట్ లూప్లో నడపగలదు.