JSch วางพร็อกซีเครือข่ายไว้บนเซสชัน SSH ช่อง SFTP ที่เปิดบนเซสชันนั้นจะใช้เส้นทางที่สร้างไว้

สำหรับเซสชันที่กำหนดค่าไปยังเซิร์ฟเวอร์ SSH เป้าหมายไว้แล้ว ให้เลือกเกตเวย์ HTTP CONNECT ก่อนเชื่อมต่อ:

ProxyHTTP gateway = new ProxyHTTP("proxy.example", 8080);
session.setProxy(gateway);
session.connect(10000);

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

สำหรับบริการ SOCKS5 ให้ใช้อะแดปเตอร์ที่ตรงกันแทน:

session.setProxy(new ProxySOCKS5("proxy.example", 1080));

เลือกอะแดปเตอร์ที่ตรงกับโปรโตคอลของปลายทาง พร็อกซี HTTP และตัวรับฟัง SOCKS ไม่เข้าใจการเจรจาแบบเดียวกัน

เมื่อการเข้าสู่ระบบพร็อกซี HTTP Basic ของ JSch เหมาะสม ให้เรียก gateway.setUserPasswd(proxyUser, proxyPassword) ก่อนเชื่อมต่อ บัญชี SSH ยังคงถูกกำหนดค่าบนเซสชัน เปิดช่อง SFTP หลังจากเซสชันเชื่อมต่อแล้ว และตัดการเชื่อมต่อช่องและเซสชันเมื่อการถ่ายโอนเสร็จสิ้น

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