SSH ProxyCommand และการพิสูจน์ตัวตนตามโฮสต์: โฮสต์ใดเป็นผู้ลงนาม
แยกความแตกต่างระหว่างการส่งต่อสตรีม TCP ผ่าน bastion กับการเริ่มไคลเอนต์ SSH ตัวที่สองที่นั่นเมื่อเกี่ยวข้องกับการพิสูจน์ตัวตนตามโฮสต์
เป้าหมายมองเห็นการเชื่อมต่อ TCP ที่มาจาก bastion ขณะที่ไคลเอนต์ SSH ที่ทำการพิสูจน์ตัวตนยังคงทำงานบนเวิร์กสเตชัน
Host behind-bastion
ProxyCommand ssh -W %h:%p bastionที่นี่ตัวช่วยเข้าสู่ระบบ bastion และขอให้เซิร์ฟเวอร์ SSH ของมันส่งต่อการเชื่อมต่อไปยังเป้าหมาย ไคลเอนต์ SSH ชั้นนอกของเวิร์กสเตชันแลกเปลี่ยนโปรโตคอล SSH ของเป้าหมายผ่านสตรีมนั้น bastion ให้การขนส่ง แต่ไม่ได้เริ่มไคลเอนต์ SSH ที่หันไปทางเป้าหมาย
ความแตกต่างนี้สำคัญสำหรับการพิสูจน์ตัวตนตามโฮสต์ ตัวช่วย ssh-keysign ของ OpenSSH เข้าถึงคีย์โฮสต์ภายในเครื่องเพื่อสร้างลายเซ็นที่จำเป็น การที่ที่อยู่ต้นทางเครือข่ายเป็นของ bastion ไม่ได้ทำให้เวิร์กสเตชันลงนามด้วยคีย์โฮสต์ของ bastion
เปรียบเทียบกับ:
ssh -t bastion ssh targetสิ่งนี้เริ่มโปรแกรม SSH อีกตัวบน bastion การกำหนดค่าภายในเครื่องและคีย์โฮสต์ที่มีอยู่เป็นของเครื่องนั้น จึงสามารถเข้าร่วมในข้อตกลงความไว้วางใจตามโฮสต์ที่กำหนดไว้แล้วระหว่าง bastion กับเป้าหมายได้ ยังต้องมีการอนุญาตและตรวจสอบชื่อที่สอดคล้องจากเป้าหมาย
รูปแบบที่สองยังเปลี่ยนวิธีการทำงานของเซสชัน: มันเรียกใช้คำสั่งระยะไกลและใช้เทอร์มินัล ไม่ใช่สิ่งทดแทนแบบโปร่งใสสำหรับการถ่ายโอนไฟล์ SSH หรือการขนส่งระบบอัตโนมัติทุกรูปแบบ เลือกการจัดวางตามเครื่องที่ควรพิสูจน์ตัวตนกับเป้าหมาย แทนที่จะลดทอนการตรวจสอบความไว้วางใจของเซิร์ฟเวอร์เพื่อให้ที่อยู่ต้นทางดูเพียงพอ