ใช้ ProxyCommand
man ssh_config
ดู ProxyCommand
ผมขอแนะนำการใช้ ลองใช้สถานการณ์เดิมของคุณ:
- คอมพิวเตอร์ A (คอมพิวเตอร์ของคุณ)
- คอมพิวเตอร์ B (ชื่อโฮสต์พร็อกซี)
- คอมพิวเตอร์ C (สามารถเข้าถึงได้ผ่าน SSH จากคอมพิวเตอร์ B เท่านั้น)
แก้ไข~/.ssh/config
ด้วยเนื้อหาดังต่อไปนี้
Host computerb
HostName <hostname or IP of Computer B>
Host computerc 192.168.35.*
ProxyCommand ssh computerb nc -w 180 %h %p
ตอนนี้คุณจะสามารถเข้าถึงคอมพิวเตอร์ C. ได้อย่างโปร่งใส
ssh computerc
ข้อดีของวิธีนี้
ปลอดภัยยิ่งขึ้น
คุณต้องใช้รหัสส่วนตัวของคุณเท่านั้นที่จะอยู่ในคอมพิวเตอร์ A (คอมพิวเตอร์ของคุณ) nc
คำสั่งจะทำหน้าที่เป็นพร็อกซี่ที่ SSH จะเข้ารหัสการจราจรผ่าน ซึ่งรวมถึงการตรวจสอบ มันเป็นความคิดที่ดีมากในการแจกจ่ายกุญแจส่วนตัวของคุณไปยังเซิร์ฟเวอร์หลาย ๆ เครื่อง
ตรงกับหลายปลายทาง
Host
หนึ่งสามารถตรงกับเครื่องคอมพิวเตอร์หลายเครื่องโดยใช้ปลายทาง คอมพิวเตอร์เครื่องเดียวหรือคอมพิวเตอร์ใด ๆ ที่อยู่ในเครือข่ายเฉพาะ (เช่น192.168.35.0/24
ในตัวอย่างด้านบน) เพื่อเชื่อมต่อผ่านทางคอมพิวเตอร์ B. นอกจากนี้ยังทำหน้าที่เป็นนามแฝง
ssh 192.168.35.27
ในตัวอย่างข้างต้นมันจะพร็อกซีผ่านคอมพิวเตอร์ B เพื่อไปยังที่อยู่ IP
พร็อกซี่โซ่เดซี่
การใช้วิธีนี้คุณสามารถเชื่อมโยงห่วงโซ่เดซี่กับผู้รับมอบฉันทะอัตโนมัติได้มากเท่าที่จำเป็น เช่นคุณสามารถเพิ่มComputer Dซึ่งสามารถเข้าถึงได้จาก Computer C เท่านั้นและจะทำงานได้อย่างโปร่งใส
Host computerd
ProxyCommand ssh computerc nc -w 180 %h %p
ssh computerd
จะพร็อกซีอัตโนมัติผ่านคอมพิวเตอร์ C และคอมพิวเตอร์ B ในssh_config
ตัวอย่างด้านบน