Ansible - เข้าถึงผ่าน Bastion ด้วย MFA


9

ในสภาพแวดล้อมปัจจุบันของฉันฉันมีเซิร์ฟเวอร์ Linux ทั้งหมดของฉันเท่านั้นที่สามารถเข้าถึงได้ผ่านโฮสต์ป้อมปราการซึ่งเปิดใช้งาน MFA

ฉันจัดการเพื่อให้ Ansible ประสบความสำเร็จในการพูดคุยกับเซิร์ฟเวอร์ผ่านป้อมปราการปัญหาเดียวคือมันสร้างการเชื่อมต่อใหม่ไปที่ป้อมปราการสำหรับแต่ละโฮสต์ซึ่งหมายความว่าฉันต้องป้อนคีย์ MFA ให้มากที่สุดเท่าที่ฉันมีเซิร์ฟเวอร์ เวลาที่ไม่ดี :(

ฉันได้ลองทำสิ่งต่าง ๆ เช่นนี้ใน ssh config เพื่อพยายามมัลติเพล็กซ์ทำงาน:

Host bastion
  ControlMaster auto
  ControlPath ~/.ssh/ansible-%r@%h:%p
  ControlPersist 5m

น่าเสียดายที่มันดูเหมือนจะไม่ทำ ทุกคนมีเคล็ดลับเกี่ยวกับวิธีที่ฉันสามารถหยุด Ansible อีกครั้งสร้างการเชื่อมต่อผ่านโฮสต์ป้อมปราการของฉันสำหรับทุกพื้นที่ที่สัมผัส

ขอบคุณ!


อาจเกิดขึ้นกับคุณแล้ว แต่ ... หากโฮสต์ป้อมปราการของคุณอนุญาตให้เข้าถึงการเข้าสู่ระบบปกติมากกว่าเพียงแค่การส่งต่อแพ็คเก็ตและการตั้งค่าที่ไม่สามารถบันทึกได้ของคุณไม่มีไฟล์จำนวนมากคุณสามารถลองใช้ .
คู่ปรับ Shot

ไม่จำเป็นต้องมาจากโฮสต์ของป้อมปราการ แต่อาจเป็นโฮสต์ใด ๆ ในสภาพแวดล้อมเดียวกัน เราได้ทุ่มเทโฮสต์การควบคุม Ansible สิ่งนี้ทำให้มั่นใจได้ว่าผู้ใช้ไม่มีการตั้งค่า Ansible แปลก ๆ หรือไม่รองรับ Ansible รุ่นที่ทำงานอยู่ นอกจากนี้ยังช่วยเพิ่มความเร็ว playbook เป็นจำนวนมาก
udondan

(ฉันไม่รู้ว่า MFA คืออะไร) คุณเปิดใช้งานForwardAgentในการกำหนดค่า ssh ของเวิร์กสเตชันของคุณ (ไม่ใช่ป้อมปราการ)
Baptiste Mille-Mathias

คำตอบ:


1

ฉันเพียงแค่สะดุดนี้โพสต์บล็อกในการทำงานเบิ้ลกับโฮสต์ป้อมปราการ

เห็นได้ชัดว่าคุณต้องการเพิ่มโฮสต์ป้อมปราการไปยังโฮสต์ควบคุมssh_config:

Host 10.10.10.*
  ProxyCommand ssh -W %h:%p bastion.example.com
  IdentityFile ~/.ssh/private_key.pem

Host bastion.example.com
  Hostname bastion.example.com
  User ubuntu
  IdentityFile ~/.ssh/private_key.pem
  ControlMaster auto
  ControlPath ~/.ssh/ansible-%r@%h:%p
  ControlPersist 5m

แก้ไขssh_argsในในansible.cfg:

[ssh_connection]
ssh_args = -F ./ssh.cfg -o ControlMaster=auto -o ControlPersist=30m control_path = ~/.ssh/ansible-%%r@%%h:%%p

ที่ควรปกปิดbastionส่วนหนึ่งของการกำหนดค่า สำหรับMFAผู้ใช้บางส่วนในปัญหา Github นี้อ้างว่าเป็นไปได้ที่จะใช้เซสชัน ssh ใน Ansible ที่เปิดอยู่นอก Ansible

ฉันเปิดการเชื่อมต่อเริ่มต้นกับโฮสต์ที่มี 2FA จากนั้นในหน้าต่างอื่นเรียกใช้บางสิ่งเช่น:

ansible-playbook thing.yml --ssh-common-args='-o ControlPath=~/.ssh/connshare'

ฉันไม่ได้ติดตั้งโฮสต์ของป้อมปราการ แต่ฉันคิดว่ากลยุทธ์นี้น่าลอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.