หน้าที่ของ jump host
jump host หรือที่เรียกว่า bastion คือเซิร์ฟเวอร์ที่คุณเข้าถึงได้โดยตรง และเข้าถึงเซิร์ฟเวอร์ภายในของคุณได้ มีเพียงพอร์ต SSH ของ bastion ที่เปิดให้เข้าถึงจากภายนอก ส่วนเซิร์ฟเวอร์ภายในยอมรับ SSH จากเครือข่ายภายในเท่านั้น เมื่อใช้ ProxyJump ไคลเอนต์จะเปิดการเชื่อมต่อ SSH ไปยัง bastion หนึ่งการเชื่อมต่อ และเปิดการเชื่อมต่อที่สองซึ่งเข้ารหัสจากต้นทางถึงปลายทางผ่าน bastion ไปยังเครื่องเป้าหมาย bastion ส่งต่อการรับส่งข้อมูลแต่ไม่เห็นเนื้อหาในเซสชัน และคีย์ส่วนตัวยังคงอยู่ในคอมพิวเตอร์ของคุณ
เชื่อมต่อจากบรรทัดคำสั่ง
ตัวเลือก -J ใช้ระบุ jump host หากมีหลายจุดแวะ ให้คั่นด้วยเครื่องหมายจุลภาค โดยจะใช้งานตามลำดับที่ระบุ หากใช้เส้นทางเดิมเป็นประจำ ให้เพิ่มการตั้งค่าใน ~/.ssh/config เพื่อให้เรียกใช้ด้วยชื่อแทนสั้น ๆ ได้
ssh -J admin@bastion.example admin@app.internal
ssh -J admin@bastion.example,ops@hop2.example admin@app.internal
# ~/.ssh/config
Host app-internal
HostName app.internal
User admin
ProxyJump admin@bastion.exampleตรวจสอบคีย์โฮสต์ทุกเครื่อง
แต่ละจุดแวะเป็นเซิร์ฟเวอร์ SSH แยกกันและมีคีย์โฮสต์ของตนเอง จึงต้องยืนยันลายนิ้วมือคีย์ของทั้ง bastion และเครื่องเป้าหมายผ่านอีกช่องทางที่เชื่อถือได้ คีย์ที่เปลี่ยนไปในจุดแวะใดก็ตามควรได้รับการตรวจสอบเช่นเดียวกับการเชื่อมต่อโดยตรง เปรียบเทียบลายนิ้วมือที่แสดงในการเชื่อมต่อครั้งแรกกับค่าที่ผู้ดูแลระบบอ่านจากเซิร์ฟเวอร์
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256เลือกใช้ ProxyJump แทนการส่งต่อเอเจนต์
การส่งต่อเอเจนต์ (ssh -A) ทำให้ผู้ที่มีสิทธิ์เพียงพอบน bastion ใช้คีย์ที่คุณโหลดไว้ได้ขณะที่คุณเชื่อมต่ออยู่ ProxyJump ไม่จำเป็นต้องใช้การส่งต่อเอเจนต์ เพราะการยืนยันตัวตนกับเครื่องเป้าหมายทำจากคอมพิวเตอร์ของคุณเอง นอกจากนี้ ควรหลีกเลี่ยงการเก็บคีย์ส่วนตัวบน bastion และจำกัดผู้ที่สามารถล็อกอินเข้าเครื่องนั้น
ปัญหาที่พบบ่อย
เริ่มจากระบุว่าจุดแวะใดล้มเหลว โดยเชื่อมต่อไปยัง bastion เพียงเครื่องเดียว แล้วเรียกใช้ ssh -vvv พร้อม -J เพื่อดูว่าการเชื่อมต่อหยุดที่ใด หาก bastion ใช้งานได้แต่เครื่องเป้าหมายไม่ได้ สาเหตุมักเป็นไฟร์วอลล์ระหว่างสองเครื่อง ชื่อภายในที่ผิด หรือเครื่องเป้าหมายไม่ยอมรับคีย์ของคุณ เซิร์ฟเวอร์ที่ตั้งค่า AllowTcpForwarding no จะปฏิเสธการทำหน้าที่เป็น jump host
jump host ใน CH-J Server Manager
Alpha 0.1.1 เชื่อมต่อผ่าน jump host ที่บันทึกไว้หรือป้อนด้วยตนเองได้ และโฮสต์ที่บันทึกไว้สามารถต่อเป็นสายโซ่ได้สูงสุดสาม jump host โดยตรวจสอบคีย์โฮสต์ทุกจุดแวะ ตัวตรวจสอบความพร้อมใช้งานจะตรวจเซิร์ฟเวอร์ที่อยู่หลัง jump host ผ่านเซสชันที่เปิดอยู่ไปยัง jump host นั้นเท่านั้น หากไม่มีเซสชันดังกล่าว จะแสดงว่าเซิร์ฟเวอร์ยังไม่ได้รับการตรวจสอบ และจะไม่แสดงว่าออนไลน์เด็ดขาด Beta 0.1.0 ไม่มีคุณสมบัตินี้