SSH Reverse

เคยไหมที่ทำงานค้างที่บ้าน แล้วจะออกไปข้างนอกทำงานต่อ แต่ SSH กล้ับเข้าเครื่องตัวเองไม่ได้ขี้เกียจทำ NAT ขี้เกียจทำ dyndns แต่อยากได้ remote ssh กลับมาวันนี้

ใครใช้ SSH จะรู้ว่ามันมีความสามารถในการทำ tunneling อยู่ โดยเราสามารถ map port ที่เครื่องของเราให้วิ่งผ่าน ssh server แล้วไปยังเครื่องปลายทางได้ นั่นคือ SSH -L [พอร์ตที่เครื่องเรา]:[เครื่องปลายทาง]:[พอร์ตปลายทาง]

แต่จริงๆ SSH ยังมี SSH -R ที่ใช้ต่อกลับมาที่เครื่องเราเองได้อีกด้วย ในรูปแบบของ ssh -R [พอร์ตที่เครื่อง server]:[เครื่องปลายทาง]:[พอร์ตปลายทาง]

เวลาที่เราจะ remote กลับเครื่องตัวเองจากข้างนอก ก็สั่ง

ssh [user ของ ssh server]@[ssh server] -R [พอร์ตที่เครื่อง ssh server]:localhost:22

เช่น ssh wason@garnet.ku.ac.th -R 5555:localhost:22

รันทิ้งไว้เช่นนี้ พออยู่ข้างนอก ก็..

[wason@notebook] $ ssh wason@garnet.cpe.ku.ac.th

[wason@garnet] $ ssh wason@localhost -p 5555

[wason@home_pc] $

เท่านี้ก็จะกลับมาที่เครื่องได้ ไม่ต้องทำเรื่องขอเปิด port ให้ยุ่งยาก

 

lewcpe

CTO at MFEC PLC. Chief Editor at Blognone.com

 

4 thoughts on “SSH Reverse

  1. ผมเคยทำเมื่อสองสามปีก่อน สักพักหลังแอดมินจับได้เขาก็แก้โดยกำหนดเวลาของ session ไว้ พอเวลาอยู่ข้างนอกแล้วจะใช้จริงๆมันก็ไม่เหลือตอแล้ว

  2. ใน manual จะระบุว่า -R มาจาก remote นะ ล้อกันกับ -L ที่เป็น local

  3. เคยเจอ admin ดักทางเช่นเดียวกัน
    ผมแก้ลำด้วย autossh แบบว่าถ้า
    session ตายให้ restart session ใหม่อีกที
    เปิดกันข้ามอาทิตย์หลุดมันก็ต่อให้ใหม่
    ยกเว้นไฟดับ

Comments are closed.