Qurulmuş HTTP CONNECT tunelini Paramiko-ya ötürmək
SSH host açarının yoxlanmasını saxlayaraq Paramiko-nu icazəli HTTP CONNECT marşrutu ilə birləşdirin.
HTTP CONNECT köməkçisi nəzərdə tutulan SSH serverinə tunel qaytardıqdan sonra həmin axını Paramiko-ya verin:
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.Nümunədəki hostu dəyişin və yerləşdirmənin düzgün known-hosts məlumatlarını yükləyin. tunnel artıq həmin serverə aparmalıdır. connect-ya ötürülən host adı SSH host açarını müəyyən edir, proksini yox.
sock interfeysi açıq soket və ya soketə bənzər obyekt qəbul edir. O, sizin üçün HTTP danışıqları aparmır. Qaytarmazdan əvvəl birləşdirici bunları etməlidir:
- Proksi ilə birləşmək və təyinat üçün etibarlı CONNECT sorğusu göndərmək.
- Dəstəklənən istənilən proksi autentifikasiyasını tamamlamaq və uğurlu tunel statusunu yoxlamaq.
- Bütün proksi başlıq bölməsini oxumaq, qismən oxunuşları idarə etmək və sərhəddən sonrakı baytları qorumaq.
- Qurğunu məhdudlaşdırmaq və rədd edilmiş/xətalı soketləri təmizləmə yolu ilə bağlamaq.
Bu iş üçün saxlanılan birləşdiricidən istifadə edin. Bir qəbul buferində ingiliscə uğur ifadəsi axtarmaq bölünmüş status sətirlərini, dəyişkən səbəb mətnini və natamam başlıqları qaçırır. Uğurlu proksi TCP bağlantısı qəbul edilmiş SSH tuneli deyil.
Proksi tələb olunan SSH portuna icazə verməlidir; veb-braxinq icazəsi 22-ci porta CONNECT girişi yaratmır. 407 SSH girişindən əvvəl baş verir, SSH hesabı xətası isə tuneldən sonra baş verir. Bu hesabları ayrı saxlayın.
Bitirdikdə SSH müştərisini və birləşdiriciyə məxsus resursları bağlayın. Tapşırığın oxunuşları dayandırması canlı bağlantını özü bağlamır.