ก่อนหน้านี้ฉันได้สร้างชุดรหัสสำหรับการเข้าถึงระยะไกลไปยัง SSH เมื่อเร็ว ๆ นี้มีข้อกำหนดและฉันต้องผ่านเครื่องกระโดดเพื่อเข้าถึงบริการเป้าหมาย หลังจากค้นหาออนไลน์เป็นเวลานานฉันไม่สามารถหาตัวอย่างที่ดีกว่าได้ดังนั้นฉันจึงดู JSCH API ด้วยตัวเอง แต่ฉันเห็นมันในหมอก ท้ายที่สุดฉันคิดเกี่ยวกับมันเป็นหลักการของการส่งต่อพอร์ตเพื่อแมปโหนดเป้าหมาย IP: พอร์ตไปยัง LocalHost: พอร์ตแล้วส่งข้อความผ่าน LocalHost: พอร์ตเพื่อไปยังโหนดเป้าหมายหรือไม่
ด้วยการอนุมานนี้ฉันแก้ไขรหัสก่อนหน้า
ฉันจะไม่พูดมากเกี่ยวกับรหัสต้นฉบับที่เชื่อมต่อกับเซิร์ฟเวอร์โหนดเป้าหมายผ่าน JSCH ฉันจะใช้ Baidu เพื่อทำมันและมีออนไลน์มากมาย
ต่อไปนี้เป็นรหัสที่แก้ไขแล้ว:
/ ** * รับการเชื่อมต่อ * @param ip jump host * @param username jump username * @param pwd รหัสผ่านกระโดด * @param พอร์ตกระโดดพอร์ต * @@return channelsftp ค่าคืน * @throws jschexception การเชื่อมต่อข้อยกเว้น */ ช่องสัญญาณคงที่ if (สตริง ip } เซสชัน sshsession = null; JSCH JSCH = new JSCH (); sshsession = jsch.getSession (ชื่อผู้ใช้, IP, พอร์ต); sshsession.setPassword (PWD); คุณสมบัติ sshconfig = คุณสมบัติใหม่ (); sshconfig.put ("stricthostkeychecking", "no"); sshconfig.put ("Preferredauthentications", "รหัสผ่าน, คีย์บอร์ด-เชิงรุก"); sshsession.setconfig (sshconfig); sshsession.connect (tmout); // การหมดเวลาสามารถตั้งค่า // ส่วนหนึ่งของพอร์ตที่แมปกับ sshsession.setportforwardingl (พอร์ตท้องถิ่น, ที่อยู่โหนดเป้าหมาย, 22); // หลังจากเสร็จสิ้นการแมปอุทธรณ์คุณสามารถเชื่อมต่อกับเซสชันเซสชัน = jsch.getSession ("ชื่อผู้ใช้บริการเป้าหมาย", "127.0.0.1", พอร์ตท้องถิ่น); คุณสมบัติ remotecfg = คุณสมบัติใหม่ (); Remotecfg.put ("StricthostkeyChecking", "No"); remotecfg.put ("Preferredauthentications", "รหัสผ่าน, แป้นพิมพ์-อินเทอร์แอคทีฟ"); session.setConfig (remotecfg); session.setPassword ("รหัสผ่านบริการเป้าหมาย"); session.connect (); // จะเปลี่ยนแปลงได้อย่างไรในอนาคต? มีหลายช่องทางที่ใช้ออนไลน์ channel = (channel) session.openchannel ("sftp"); // สร้างช่องทางการสื่อสาร SFTP channel.connect (); Channelsftp sftp = (channelsftp) channel; ส่งคืน SFTP; -ในที่สุดการทดสอบถูกใช้เพื่อเข้าถึงไดเรกทอรีของโหนดเป้าหมายผ่าน SFTP และมันก็ประสบความสำเร็จ
วิธีการข้างต้นในการใช้เฟรมเวิร์ก JSCH เพื่อเข้าถึงโหนดอื่น ๆ ผ่านเครื่องกระโดดเป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น