SSH tunnel เหนือ multi hops โดยใช้ putty


13

ฉันมีสถานการณ์ที่ฉันต้องการเชื่อมต่อกับเครื่องลีนุกซ์ที่รัน VNC (เรียกว่า VNCServer) ซึ่งอยู่หลังเครื่อง Linux ที่ต่อเนื่องกันสองเครื่องนั่นคือการ ssh เข้าสู่ VNCServer ฉันต้อง ssh เข้าสู่ Gateway1 จากแล็ปท็อปของฉันจากเชลล์ 1 Gateway1 ฉัน ssh เข้าไปใน Gateway2 จากนั้นจากนั้นฉันก็ไปที่ VNCServer ฉันไม่สามารถเปลี่ยนการออกแบบเครือข่ายและการเข้าถึงแล็ปท็อป -> Gateway1 -> Gateway2 -> เซิร์ฟเวอร์ ฉันไม่มีสิทธิ์รูทใน Gateway1 และพอร์ตทั้งหมดยกเว้น 22 และ 5901 ถูกปิด

มีวิธีที่ฉันสามารถเปิดตัว VNC Viewer บนแล็ปท็อปของฉันและเข้าถึง VNCServer ได้หรือไม่? ฉันเข้าใจว่ามันอาจจะทำได้โดยใช้คุณสมบัติการสร้างช่องสัญญาณ ssh และฉันมีแล็ปท็อป Windows ของฉัน (ขออภัยไม่มี Linux หรือ Cygwin ฯลฯ สามารถติดตั้งบนแล็ปท็อปที่ทำงานได้) ความช่วยเหลือใด ๆ จะได้รับการชื่นชมอย่างมากเช่นนี้จะทำให้ชีวิตของฉันง่ายขึ้น!

คำตอบ:


19

สีโป๊วรองรับอุโมงค์ ssh หากคุณขยายการเชื่อมต่อทรี SSH คุณจะเห็นรายการอุโมงค์

ช่องสัญญาณโลคัลสร้างพอร์ต localhost ที่เปิดอยู่บนเครื่อง windows ของคุณซึ่งรีโมตไปยังที่อยู่ IP และพอร์ตที่คุณระบุ ตัวอย่างเช่นเมื่อฉันพยายาม RDP ไปที่เดสก์ท็อปที่บ้านของฉันฉันมักจะเลือกพอร์ตท้องถิ่นแบบสุ่มบางอย่างเช่น 7789 แล้วใส่ที่อยู่ IP ท้องถิ่นของเดสก์ท็อป (1.2.3.4:3389) เป็นรีโมต เจ้าภาพ อย่าลืมคลิก "เพิ่ม" จากนั้น "นำไปใช้" ณ จุดนี้เมื่อคุณ rdp ถึง 127.0.0.1:7789 จากนั้นคุณจะเชื่อมต่อกับ 1.2.3.4:3389 ผ่านทางเซสชันโป๊ว

นี่คือที่ที่ความสนุกเข้ามาถ้าคุณตั้งค่าช่องอุโมงค์ในกล่องกลางของคุณตั้งค่าพอร์ตท้องถิ่นที่คุณระบุว่าเป็นพอร์ตระยะไกลในสีโป๊วคุณสามารถตีกลับฉาบผ่านกล่องกลางปลายทางสุดท้ายของคุณ คุณจะยังคงต้องทำการเชื่อมต่อ ssh บางอย่าง แต่คุณจะสามารถข้าม vnc หรือ rdp โดยตรงจากระบบ windows เมื่อคุณตั้งค่าซึ่งเป็นสิ่งที่ฉันเชื่อว่าคุณกำลังมองหา

ตัวอย่าง

  1. ตรงไปที่พาเนล tunnels ใน Putty (Connections-> SSH-> Tunnels เข้าถึงได้จากเมนูบริบทหากเซสชัน ssh แอ็คทีฟอยู่หรือในหน้าจอการเชื่อมต่อเริ่มต้นเมื่อเพิ่งเริ่ม putty)
  2. สร้างอุโมงค์ที่มีแหล่งข้อมูลท้องถิ่น 15900 และแหล่งข้อมูลระยะไกล 127.0.0.1:15900
  3. เชื่อมต่อ (หากยังไม่ได้เชื่อมต่อ) กับ Gateway1
  4. บน Gateway1, ssh -L 127.0.0.1:15900:VNCServerIP,5900 user @ Gateway2
  5. เมื่อ ssh to Gateway2 หมดแล้วให้ลอง vnc เป็น 127.0.0.1:15900 - ตอนนี้คุณควรเห็นหน้าจอ VNC ทางด้านไกล!

โบนัสเพิ่ม - มีคนไม่มากที่รู้เรื่องนี้ แต่กระบวนการนี้ยังสามารถใช้เพื่อรับส่งข้อมูล IPv6 / IPv4 ของพร็อกซีได้เช่นกัน SSH ไม่สนใจว่าจะใช้โปรโตคอลใดสำหรับอุโมงค์ดังนั้นคุณสามารถเข้าถึงโฮสต์ IPv6 เท่านั้นในทางทฤษฎีจากระบบ IPv4 เท่านั้นเนื่องจากเซิร์ฟเวอร์ ssh เป็นสแต็กคู่ (มีทั้งที่อยู่ IPv4 และ IPv6)


15

มีทางเลือกถ้าคุณต้องการใช้ PuTTY สำหรับฮ็อพทั้งสอง ในตัวอย่างนี้เรากำลังกระโดดจาก Gateway # 1 (10.0.1.123) ไปยัง Gateway # 2 (10.0.1.456) ไปยังพอร์ต 80 ที่ 10.0.1.789

  1. ขั้นแรกให้สร้าง hop ไปยังเกตเวย์ # 1 ขั้นแรกให้ตั้งค่าการเชื่อมต่อกับเซิร์ฟเวอร์แรก ตั้งค่าอุโมงค์ไปยังเกตเวย์ที่สองในการเชื่อมต่อ> SSH> อุโมงค์ ในตัวอย่างนี้เราจะส่งต่อพอร์ต 2222 ไปยังเกตเวย์ที่สอง

    เชื่อมต่อกับ servert

    ตั้งค่าอุโมงค์

  2. ตอนนี้เราจะตั้งค่า hop สอง เราจะทำการอุโมงค์ผ่านเกตเวย์แรกไปยังเกตเวย์ถัดไปและพอร์ตการตั้งค่าการส่งต่อบนเกตเวย์ที่สอง การเชื่อมต่อคือ localhost บนพอร์ต 2222 ซึ่งจะทำการเชื่อมต่อผ่านการเชื่อมต่อ ssh ที่รันอยู่กับ hop ที่สอง ในการเชื่อมต่อนี้เราตั้งค่าพอร์ตไปข้างหน้าจากพอร์ต 3333 ถึง 10.0.1.789

    ป้อนคำอธิบายรูปภาพที่นี่

    ป้อนคำอธิบายรูปภาพที่นี่

  3. ตอนนี้เปิดเบราว์เซอร์และไปที่ 127.0.0.1:3333 และคุณจะได้ช่องทางผ่านการเชื่อมต่อ SSH ทั้งสองไปยัง 10.0.1.789:80


1
มีวิธีใดที่จะประสบความสำเร็จเช่นเดียวกันโดยใช้หนึ่ง putty เซสชั่นเดียวที่มีสองอุโมงค์ที่กำหนดค่าในเมนู SSH -> Tunnels? ด้วยวิธีนี้คุณจะต้องเปิดอินสแตนซ์ฉาบหนึ่งครั้งเท่านั้นหรือ
ulrich
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.