Kalimi i një tuneli HTTP CONNECT të vendosur te Paramiko
Lidhni Paramiko përmes një rruge HTTP CONNECT të autorizuar duke ruajtur verifikimin e çelësit të hostit SSH.
Pasi një ndihmës HTTP CONNECT të ketë kthyer një tunel te serveri SSH i synuar, jepni atë rrjedhë 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.Zëvendësoni hostin shembull dhe ngarkoni të dhënat e sakta known-hosts të vendosjes. tunnel duhet të çojë tashmë te i njëjti server. Emri i hostit që i jepet connect identifikon çelësin e hostit SSH, jo proxy-n.
Ndërfaqja sock pranon një socket të hapur ose një objekt të ngjashëm me socket. Ajo nuk negocion HTTP për ju. Përpara se ta kthejë, lidhësi duhet të:
- Lidhet me proxy-n dhe të dërgojë një kërkesë CONNECT të vlefshme për destinacionin.
- Përfundojë çdo vërtetim proxy të mbështetur dhe të vërtetojë një status tuneli të suksesshëm.
- Lexojë të gjithë seksionin e kokave të proxy-t, duke trajtuar lexime të pjesshme dhe duke ruajtur bajtët përtej kufirit.
- Kufizojë konfigurimin dhe të mbyllë socket-et e refuzuara/me gabim përmes rrugës së pastrimit.
Përdorni një lidhës të mirëmbajtur për atë punë. Kërkimi i një fraze suksesi në anglisht në një tampon të vetëm pritjeje humb rreshtat e statusit të ndarë, tekstin e ndryshueshëm të arsyes dhe kokët e paplota. Një lidhje TCP proxy e suksesshme nuk është tuneli SSH i pranuar.
Proxy duhet të lejojë portën SSH të kërkuar; leja për shfletim web nuk vendos akses CONNECT te porta 22. Një 407 ndodh përpara hyrjes SSH, ndërsa një dështim i llogarisë SSH ndodh pas tunelit. Mbani ato llogari të ndara.
Mbyllni klientin SSH dhe burimet që zotëron lidhësi kur të mbaroni. Ndalimi i leximeve nga një detyrë nuk mbyll vetë një lidhje aktive.