Score:0

ssh ไปยังเซิร์ฟเวอร์ที่ไม่มี IP สาธารณะจากเซิร์ฟเวอร์ที่ไม่มี IP สาธารณะที่ซ่อนอยู่หลังเซิร์ฟเวอร์ที่มี IP สาธารณะ

ธง sk

ฉันมีการตั้งค่าต่อไปนี้: ฉันต้องการเข้าถึงเครื่อง A จากเครื่อง C แต่ไม่มีที่อยู่ IP สาธารณะ แม้ว่าเครื่อง C จะอยู่ในเครือข่ายเดียวกับเครื่อง B ซึ่งมีการเข้าถึง IP สาธารณะ ดังนั้นฉันจึงสามารถเข้าถึงเครื่อง C ได้จากทุกที่โดย ssh'ing แรกเข้าไปในเครื่อง B และจากนั้น ssh เข้าไปในเครื่อง C ฉันไม่มี การเข้าถึงรูทบนเครื่อง B ในขณะที่ทั้ง A และ CI ฉันทำได้ ดูแผนภาพต่อไปนี้เพื่อชี้แจง:

เครื่อง A เครื่อง B เครื่อง C
ไม่มี IP สาธารณะ IP สาธารณะ ไม่มี IP สาธารณะ
การเข้าถึงรูท ไม่มีการเข้าถึงรูท การเข้าถึงรูท     
วิธีการเข้าถึง? '----------------------------'
                           เครือข่ายเดียวกัน
                       จึงสามารถเข้าถึงได้ทั้งคู่

วิธีแก้โง่คือการให้เครื่อง A ดมกลิ่นไฟล์ในเครื่อง C เป็นประจำ (โดยการเข้าถึง ssh 2 ขั้นตอนที่อธิบายไว้ด้านบน) และเมื่อใดก็ตามที่คำสั่งปรากฏในไฟล์นั้น ให้เรียกใช้งานและเขียนผลลัพธ์ผ่าน ssh ที่ใดที่หนึ่งในเครื่อง CI แม้ว่าจะสงสัยว่าสามารถ ssh "ย้อนกลับ" การเชื่อมต่ออย่างใดเพื่อให้เครื่อง A เชื่อมต่อใน 2 ขั้นตอนกับเครื่อง C จากนั้นการเชื่อมต่อจะได้รับการ "ย้อนกลับ" เพื่อให้เครื่อง C มีเชลล์ระยะไกลของเครื่อง A หรือไม่ และถ้าใช่ ฉันจะทำอย่างไร?

Score:1
ธง in

คุณสามารถมี เครื่อง ก เพื่อเปิดอุโมงค์ SSH ไปที่ เครื่องขด้วยตัวเลือกการส่งต่อระยะไกล ซึ่งจะช่วยให้คุณเข้าสู่ SSH ได้ เครื่อง ก จาก เครื่องข.

หากคุณมีสิทธิ์เข้าถึงรูท เครื่องขจากนั้นตั้งค่า พอร์ตเกตเวย์ ตัวเลือกการกำหนดค่าเป็น ใช่ ใน /etc/ssh/sshd_configจากนั้นออกคำสั่งนี้บน เครื่อง ก:

ssh -N -R 0.0.0.0:2222:127.0.0.1:22 the_public_ip_of_machine_B

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

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

อย่างไรก็ตาม คุณอาจต้องการพิจารณาใช้บางอย่างที่มีประสิทธิภาพมากกว่า เช่น VPN

sk flag
ขอบคุณ ฉันจะลองพรุ่งนี้ สถานที่ของฉันค่อนข้างดึกแล้ว ฉันจะแก้ไขคำถามของฉัน ฉันไม่มีสิทธิ์รูทบน B และต้องการทำให้มากที่สุดเท่าที่จะเป็นไปได้ใน C - เครื่อง B เป็นเพียงส่วนหน้าในการเชื่อมต่อผ่านและผู้ดูแลระบบจะไม่มีความสุขมากถ้าฉันไปยุ่งที่นั่น .

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา