AsyncSSH ചലനാത്മക TCP ഫോർവേഡിംഗ് നൽകുന്നത് forward_socks() വഴിയാണ്. 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 ആപ്ലിക്കേഷന് ഇതേ ഇവന്റ് ലൂപ്പിൽ മറ്റ് ജോലികൾ ചെയ്തുകൊണ്ട് ഈ കണക്ഷൻ തുറന്നു വയ്ക്കാം.

അനുബന്ധ ലേഖനങ്ങൾ