Հաստատված HTTP CONNECT թունելը Paramiko-ին փոխանցելը
Միացրեք Paramiko-ն լիազորված HTTP CONNECT երթուղով՝ պահպանելով SSH հոսթի բանալու ստուգումը։
Երբ 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 ինտերֆեյսը ընդունում է բացված socket կամ socket-անման օբյեկտ։ Այն ձեր փոխարեն HTTP չի բանակցում։ Այն վերադարձնելուց առաջ միացնողը պետք է՝
- Միանա պրոքսիին և ուղարկի վավեր CONNECT հարցում դեպի նպատակակետը։
- Ավարտի ցանկացած աջակցվող պրոքսի նույնականացում և վավերացնի հաջող թունելի կարգավիճակը։
- Կարդա պրոքսի վերնագրերի ամբողջ բաժինը՝ մշակելով մասնակի ընթերցումները և պահպանելով սահմանից այն կողմ գտնվող բայթերը։
- Սահմանափակի կարգավորումը և փակի մերժված/սխալ socket-ները իր մաքրման ուղով։
Այդ աշխատանքի համար օգտագործեք պահպանվող միացնող։ Մեկ ընդունման բուֆերում անգլերեն հաջողության արտահայտություն փնտրելը բաց է թողնում բաժանված կարգավիճակի տողերը, փոփոխական պատճառի տեքստը և թերի վերնագրերը։ Հաջող պրոքսի TCP կապը ընդունված SSH թունելը չէ։
Պրոքսին պետք է թույլատրի պահանջվող SSH պորտը. վեբ զննարկման թույլտվությունը CONNECT հասանելիություն չի ստեղծում 22 պորտին։ 407-ը տեղի է ունենում SSH մուտքից առաջ, մինչդեռ SSH հաշվի ձախողումը տեղի է ունենում թունելից հետո։ Այդ հաշիվները առանձին պահեք։
Ավարտելիս փակեք SSH հաճախորդը և միացնողին պատկանող ռեսուրսները։ Առաջադրանքի ընթերցումների դադարեցումն ինքնին չի փակում ակտիվ կապը։