Ansible - बैस्टियन w / MFA के माध्यम से प्रवेश


9

मेरे वर्तमान परिवेश में, मेरे सभी लिनक्स सर्वर केवल एक गढ़ होस्ट के माध्यम से सुलभ हैं, जिसमें एमएफए सक्षम है।

मैं गन्तव्य के माध्यम से सर्वर से सफलतापूर्वक बात करने में सक्षम होने में कामयाब रहा, एकमात्र समस्या यह है कि यह प्रत्येक मेजबान के लिए गढ़ के लिए एक नया कनेक्शन स्थापित करता है, जिसका अर्थ है कि मेरे पास जितने एमएफए कुंजी हैं, उतने ही सर्वर हैं। बुरा समय। :(

मैंने मल्टीप्लेक्सिंग काम पाने की कोशिश करने के लिए अपने ssh config में इस तरह से सामान के साथ खिलवाड़ करने की कोशिश की है:

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

दुर्भाग्य से ऐसा लगता नहीं है। किसी को भी इस पर कुछ सुझाव मिले कि मैं कैसे अपने होस्ट को छूने वाले हर गढ़ होस्ट के माध्यम से अपने कनेक्शन को फिर से स्थापित करने से रोक सकता हूं?

धन्यवाद!


संभवतः पहले से ही आपके पास है, लेकिन ... यदि आपका गढ़ होस्ट केवल पैकेट अग्रेषण के बजाय नियमित प्रवेश के लिए अनुमति देता है, और आपके ansible config में फ़ाइलों की एक बड़ी मात्रा नहीं है, तो आप सीधे गवाहों से अपना कॉन्‍फ़िगर चलाने का प्रयास कर सकते हैं ।
पार्थियन ने

जरूरी नहीं कि गढ़ मेजबान से हो लेकिन यह उसी वातावरण में कोई भी मेजबान हो सकता है। हमने Ansible control मेजबान समर्पित किए हैं। यह सुनिश्चित करता है कि उपयोगकर्ताओं के पास कोई अजीब Ansible कॉन्फ़िगरेशन या असमर्थित Ansible संस्करण नहीं है। इसके अलावा यह बहुत से playbook गति में सुधार करता है।
.उंडन

(मैं एमएफए क्या है पता नहीं है) के लिए सक्षम है ForwardAgentअपने कार्य केंद्र (नहीं गढ़) के अपने ssh विन्यास में
बैप्टिस्ट मिल-मैथियास

जवाबों:


1

मैं बस इस ब्लॉग पोस्ट पर एक गढ़ मेजबान के साथ Ansible चलाने पर ठोकर खाई ।

जाहिरा तौर पर आप नियंत्रण मेजबान के लिए गढ़ होस्ट जोड़ने की जरूरत है 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 मुद्दे में कुछ उपयोगकर्ता भाग के लिए दावा करते हैं कि Ansible में एक ssh सत्र का उपयोग करना संभव है जो Ansible के बाहर खोला गया है।

मैं मेजबान के प्रारंभिक कनेक्शन को खोलता हूं जिसमें 2FA है, फिर किसी अन्य विंडो में कुछ इस तरह से चलाएं:

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

मेरे पास हाथ में एक गढ़ होस्ट सेटअप नहीं है, लेकिन मुझे लगता है कि यह रणनीति एक कोशिश के लायक है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.