ฉันกำลังค้นหาวิธีแก้ไขปัญหาต่อไปนี้ใน 2 ชั่วโมงที่ผ่านมาโดยไม่มีโชค
การพัฒนา:
ฉันใช้การรับรองความถูกต้อง publickey เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ของฉัน ฉันใช้การส่งต่อ ssh-agent เพื่อไม่ต้องจัดการกุญแจสาธารณะ / ส่วนตัว
A, B and C
สมมติว่าผมมีเซิร์ฟเวอร์
LOCAL ---> A ---> B
นี้ทำงานได้ดีมากถ้าฉันเชื่อมต่อจาก
LOCAL ---> A ---> C
นอกจากนี้ยังทำงานได้ดีมากถ้าผมทำ
ตอนนี้ถ้าฉันลองLOCAL ---> A ---> B ---> C
SSH ไม่สามารถเชื่อมต่อB to C
ได้
น่าสังเกต: ฉันเชื่อมต่อกับเซิร์ฟเวอร์ A เป็นสภาพคล่องในขณะที่ฉันเชื่อมต่อกับเซิร์ฟเวอร์ B ในฐานะรูท การเชื่อมต่อกับเซิร์ฟเวอร์ B เนื่องจากสภาพคล่องช่วยแก้ไขปัญหาได้ แต่นี่ไม่ใช่ตัวเลือกสำหรับฉัน
ตามคำแนะนำของผู้ใช้ฉันใช้ssh -A
แต่ละครั้งเพื่อให้แน่ใจว่าตัวแทนการส่งต่อถูกเปิดใช้งาน
ฉันพบหนึ่งคำถามที่คล้ายกันโดยไม่มีคำตอบที่นี่: เป็นไปได้หรือไม่ที่จะส่งต่อเอเจนต์ ssh-agent ผ่านหลายฮ็อป?
ตามที่ @Zoredache ที่นี่: /server//a/561576/45671ฉันแค่ต้องปรับการกำหนดค่าไคลเอนต์ของฉันในแต่ละระบบกลาง ซึ่งฉันเชื่อว่าฉันทำ
ProxyCommand
กระโดด (ดังอธิบายที่นี่ ) แทนที่จะส่งต่อเอเจนต์ SSH สำหรับวิธีการของคุณคุณจะต้องไว้วางใจเครื่องทั้งหมดในห่วงโซ่เพราะพวกเขาสามารถ (ab) ใช้คีย์ส่วนตัวของคุณ ฉันชอบวิธี ProxyCommand ดีกว่ามากเพราะการตรวจสอบโฮสต์ที่รู้จักเสร็จแล้วในเครื่องและยิ่งกว่านั้นคุณสามารถตั้งค่าโซ่ในการกำหนดค่า SSH ของคุณเพื่อให้คุณสามารถใช้คำสั่งเดียวเพื่อเชื่อมต่อกับ C.