หลังจากตัวช่วย 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 แทนคุณ ก่อนส่งคืน ตัวเชื่อมต่อต้อง:

  1. เชื่อมต่อกับพร็อกซีและส่งคำขอ CONNECT ที่ถูกต้องสำหรับปลายทาง
  2. ทำการพิสูจน์ตัวตนพร็อกซีที่รองรับให้เสร็จสิ้นและตรวจสอบสถานะอุโมงค์ที่สำเร็จ
  3. อ่านส่วนหัวพร็อกซีทั้งหมด จัดการการอ่านบางส่วนและรักษาไบต์ที่เกินขอบเขตไว้
  4. จำกัดการตั้งค่าและปิดซ็อกเก็ตที่ถูกปฏิเสธ/มีข้อผิดพลาดผ่านเส้นทางการทำความสะอาด

ใช้ตัวเชื่อมต่อที่ได้รับการดูแลสำหรับงานนั้น การค้นหาวลีความสำเร็จภาษาอังกฤษในบัฟเฟอร์รับเดียวจะพลาดบรรทัดสถานะที่แยกจากกัน ข้อความเหตุผลที่แปรผัน และส่วนหัวที่ไม่สมบูรณ์ การเชื่อมต่อ TCP พร็อกซีที่สำเร็จไม่ใช่อุโมงค์ SSH ที่ยอมรับ

พร็อกซีต้องอนุญาตพอร์ต SSH ที่ร้องขอ การอนุญาตเรียกดูเว็บไม่ได้สร้างการเข้าถึง CONNECT ไปยังพอร์ต 22 407 เกิดขึ้นก่อนการเข้าสู่ระบบ SSH ในขณะที่ความล้มเหลวของบัญชี SSH เกิดขึ้นหลังอุโมงค์ แยกบัญชีเหล่านั้นออกจากกัน

ปิดไคลเอนต์ SSH และทรัพยากรที่ตัวเชื่อมต่อเป็นเจ้าของเมื่อเสร็จสิ้น การที่งานหยุดการอ่านของตนไม่ได้ปิดการเชื่อมต่อที่ยังมีชีวิตด้วยตัวเอง

บทความที่เกี่ยวข้อง