เริ่มต้นการเชื่อมต่อ ssh จากเซิร์ฟเวอร์ไปยังไคลเอนต์


10

เราสามารถเชื่อมต่อผ่านsshเครื่องระยะไกลที่มี IP สาธารณะได้อย่างง่ายดาย

แต่ตอนนี้ฉันมีเครื่องระยะไกลที่ไม่มี IP สาธารณะและฉันต้องเชื่อมต่อกับมันจากเครื่องของฉันที่มี IP สาธารณะ ดังนั้นเครื่องระยะไกลควรเริ่มต้นการเชื่อมต่อนี้ (เพิ่มไคลเอนต์)

ฉันต้องการเพราะมีปู่ของฉันในคอมพิวเตอร์ที่ไม่มี IP สาธารณะและเขาต้องการความช่วยเหลือในระบบของเขาในบางครั้ง

ในสถานการณ์ที่คล้ายกันบน Windows ฉันใช้การเชื่อมต่อ VNC (โดย TightVNC) เซิร์ฟเวอร์ TightVNC มีตัวเลือก "เพิ่มลูกค้า": ผู้ใช้เพิ่งป้อน IP ของลูกค้า (เช่น IP สาธารณะของฉัน) ลูกค้าของฉันอยู่ใน "โหมดการฟัง" และ เมื่อ "เซิร์ฟเวอร์" เพิ่มลูกค้าการเชื่อมต่อจะเริ่มต้นได้

ดังนั้นจึงเป็นไปได้ที่จะทำการหลอกลวงด้วยการเชื่อมต่อ SSH?

คำตอบ:


12

ตามคำนิยามลูกค้าเป็นลูกค้าที่เริ่มการเชื่อมต่อ

สำหรับปัญหาของคุณฉันคิดว่าวิธีแก้ปัญหาง่ายๆคือการสร้างอุโมงค์ย้อนกลับ

บนคอมพิวเตอร์ที่ไม่มี IP สาธารณะ:

ssh -R 2222:localhost:22 loginOfServerWithPublicIP@publicIP

สิ่งนี้เชื่อมต่อกับเซิร์ฟเวอร์โดย SSH และสร้างอุโมงค์จากเซิร์ฟเวอร์ที่มี IP สาธารณะบนพอร์ต 2222 ไปยังคอมพิวเตอร์โดยไม่มี IP สาธารณะบนพอร์ต 22 (SSH)

แล้วบนเซิร์ฟเวอร์:

ssh -p 2222 loginOfComputerWithoutPublicIP@locahost

การเชื่อมต่อถูกเปลี่ยนเส้นทางจากพอร์ต 2222 ของเซิร์ฟเวอร์ไปยังพอร์ต 22 ของคอมพิวเตอร์โดยช่องสัญญาณแรก คุณอาจต้องการใช้เครื่องมือเช่นautosshทำให้อุโมงค์มีความยืดหยุ่นมากขึ้น (เช่นรีสตาร์ทโดยอัตโนมัติเมื่อปิดเครื่อง)


ขอบคุณมีประโยชน์มากและกระชับ ดูคำตอบสำหรับคำถามนี้สำหรับรายละเอียดเพิ่มเติมและตัวเลือกที่มีประโยชน์อื่น ๆ
AstroFloyd
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.