คุณต้องสามารถเข้าสู่ระบบในโฮสต์อื่นในส่วนเครือข่ายเดียวกัน วิธีการในการเข้าถึงโฮสต์ที่กำหนดค่าไม่ถูกต้องบางอย่างต้องการรูทบนโฮสต์ระดับกลาง แต่ก็มีวิธีที่ง่ายวิธีหนึ่งในการเข้าถึงโดยไม่จำเป็นต้องรูทบนโฮสต์ระดับกลาง
วิธีง่ายๆในการเข้าถึงโฮสต์โดยใช้ IPv6
ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server
ค่าตัวอย่างต่อไปนี้อยู่ในความต้องการคำสั่งดังกล่าวจะถูกแทนที่ด้วยค่าที่ถูกต้องสำหรับกรณีการใช้งานของคุณ: fe80::42:ff:fe:42
, eth0
, user
, และintermediate-host
target-server
คำอธิบายโดยละเอียดเกี่ยวกับวิธีการทำงาน
ProxyCommand
เป็นคุณสมบัติ ssh ที่จะใช้เมื่อคุณไม่สามารถเปิดการเชื่อมต่อ TCP โดยตรงไปยังโฮสต์เป้าหมาย อาร์กิวเมนต์ to ProxyCommand
เป็นคำสั่งที่ stdin / stdout ใช้แทนการเชื่อมต่อ TCP
-W
ใช้เพื่อเปิดการส่งต่อพอร์ตเดียวและเชื่อมต่อกับ stdin / stdout ProxyCommand
นี้เหมาะอย่างด้วยกัน
fe80::42:ff:fe:42%%eth0
เป็นที่อยู่ link-local ของโฮสต์เป้าหมาย โปรดสังเกตว่าเนื่องจากการProxyCommand
ใช้%
เป็นอักขระ escape คำสั่ง ssh ที่พิมพ์ต้องใช้%%
ในตำแหน่งนั้น ssh user@intermediate-host ping6 -nc2 ff02::1%eth0
คุณสามารถหาที่อยู่ลิงค์ท้องถิ่นทั้งหมดในส่วนโดยการเรียกใช้
การใช้ที่อยู่ IPv6 link-local สำหรับจุดประสงค์นี้มักจะเป็นวิธีที่ง่ายที่สุดเนื่องจากมีการเปิดใช้งานตามค่าเริ่มต้นในระบบที่ทันสมัยทั้งหมดและที่อยู่ link-local จะยังคงใช้งานได้แม้ว่าทั้ง IPv4 และ IPv6 จะถูกกำหนดค่าอย่างไม่ถูกต้อง
ย้อนกลับไปสู่ IPv4
หาก IPv6 ถูกปิดใช้งานอย่างสมบูรณ์ในโฮสต์ที่กำหนดค่าผิดพลาด (ไม่แนะนำอย่างยิ่ง) คุณอาจต้องใช้ IPv4 เนื่องจาก IPv4 ไม่มีที่อยู่ link-local วิธีที่ IPv6 จะเข้าถึงโฮสต์ที่กำหนดค่าโดยใช้ IPv4 มีความซับซ้อนมากขึ้นและต้องการการเข้าถึงรูทบนโฮสต์ระดับกลาง
หากโฮสต์ที่กำหนดค่าผิดพลาดยังคงสามารถใช้เกตเวย์เริ่มต้นได้คุณจะสามารถเข้าถึงได้จากภายนอก อาจเป็นไปได้ว่า netmask ที่กำหนดค่าผิดพลาดอาจทำให้เกตเวย์เริ่มต้นผิดพลาดเนื่องจากสแต็กปฏิเสธที่จะใช้เกตเวย์นอกคำนำหน้าซึ่งครอบคลุมโดย netmask หากเป็นกรณีนี้โฮสต์ที่กำหนดค่าผิดจะสามารถสื่อสารกับ 192.168.1.8 ได้เท่านั้นเนื่องจากเป็นที่อยู่ IP อื่น ๆ ในเครือข่ายย่อยที่เข้าถึงโฮสต์ที่กำหนดค่าไม่ได้นี้ในปัจจุบัน
หากคุณมีการเข้าสู่ระบบใน 192.168.1.8 คุณอาจจะสามารถ ssh จากที่นั่นไปที่ 192.168.1.9 หาก 192.168.1.8 ยังไม่ได้ถูกมอบหมายคุณสามารถมอบหมายให้โฮสต์ใด ๆ ในกลุ่มที่คุณมีสิทธิ์เข้าถึงรูทชั่วคราว
fe80::42:ff:fe:42
ที่อยู่ของ ... คืออะไร? เซิร์ฟเวอร์ของฉันกำหนดค่าผิดฉันเดาได้ไหม