ดังนั้น ฉันมีเซิร์ฟเวอร์จำนวนมากที่เข้าถึงได้ผ่านโฮสต์ป้อมปราการเท่านั้น
อย่างไรก็ตามโฮสต์ป้อมปราการของฉันมี IP แบบไดนามิกซึ่งเปลี่ยนแบบสุ่ม
สำหรับ ssh'ing ในเซิร์ฟเวอร์ต่างๆ ฉันเพียงแค่มี .ssh/config กับ ProxyJump ที่อ้างอิงถึงโฮสต์ของเซิร์ฟเวอร์ป้อมปราการของฉัน ดังนั้นฉันจึงต้องเปลี่ยน IP ที่เดียวเท่านั้น เช่น :
โฮสต์ preprod_jumphost
ชื่อโฮสต์ 123.123.123.123
พอร์ต 22
โฮสต์ target_host1
ชื่อโฮสต์ 201.201.201.201
ProxyJump preprod_jumphost
โฮสต์ target_host2
ชื่อโฮสต์ 201.201.201.202
ProxyJump preprod_jumphost
ด้วยการเปลี่ยน ip ของ 123.123.123.123 เป็นค่าใหม่ โฮสต์อื่นทั้งหมดของฉันจะได้รับการอัปเดตอย่างถูกต้อง
อย่างไรก็ตาม ฉันมีบริการบางอย่างที่ต้องเชื่อมต่อโดยใช้ local forward (db เป็นหลัก) ที่ฉันไม่สามารถ SSH เข้าสู่เซิร์ฟเวอร์ได้
ฉันลองใช้นามแฝงโฮสต์ในชื่อโฮสต์เช่น:
โฮสต์ db_preprod
ชื่อโฮสต์ preprod_jumphost
LocalForward 5432 201.201.201.111:5432
อย่างไรก็ตามเมื่อฉันวิ่ง ssh db_preprod
ฉันเข้าใจ:
ssh: ไม่สามารถแก้ไขชื่อโฮสต์ preprod_jumphost: ชื่อหรือบริการไม่ได้
เป็นที่รู้จัก
ถ้าฉันแทนที่ชื่อโฮสต์ด้วยไดนามิกไอพีใน:
โฮสต์ db_preprod
ชื่อโฮสต์ 123.123.123.123
LocalForward 5432 201.201.201.111:5432
มันได้ผล. ฉันสามารถ ssh db_preprod
และ psql -UYYY -d XXX -p 54332 -h localhost
ทำงาน
เนื่องจากฉันมีฐานข้อมูลและบริการอื่น ๆ มากมายที่ฉันต้องการเข้าถึงจึงมีวิธีการอ้างอิง preprod_jumphost
กำหนดในโฮสต์อื่นสำหรับต่างๆของฉัน LocalForward
คำนิยาม. ด้วยวิธีนี้ฉันจึงไม่มีการกำหนดค่าโฮสต์มากมายให้อัปเดตเมื่อ ip ของโฮสต์ป้อมปราการเปลี่ยนไป?
ในขณะที่ฉันรู้ว่าฉันสามารถกำหนด LocalForward หลายรายการโดยตรงในโฮสต์ preprod_jump โฮสต์ของฉันเป็น
โฮสต์ preprod_jumphost
ผู้ใช้อูบุนตู
ชื่อโฮสต์ 123.123.123.123
พอร์ต 22
LocalForward 5432 201.201.201.111:5432
LocalForward 5433 201.201.201.122:5432
LocalForward 5434 201.201.201.133:5432
LocalForward 5435 201.201.201.144:5432
ฉันไม่ต้องการให้พอร์ตทั้งหมดส่งต่ออย่างต่อเนื่องในขณะที่ฉัน ssh ที่ไหนสักแห่ง (โดยเฉพาะสำหรับ prod env ของฉัน) ฉันต้องการเริ่มเซสชัน ssh อย่างชัดเจนเมื่อฉันต้องการ