સ્થાપિત 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 ક્લાયન્ટ અને કનેક્ટરની માલિકીનાં સંસાધનો બંધ કરો. કાર્ય તેના વાંચન બંધ કરે તે પોતે જ જીવંત કનેક્શન બંધ કરતું નથી.