2015-09-23 9 views
7

के साथ एक वाग्रेंट मशीन में आम तौर पर, आप vagrant ssh के साथ एक Vagrant- प्रबंधित VM में ssh कर सकते हैं।एसएसएच उत्तरदायी

  1. आप एक insecure_private_key प्रमाणित करने के लिए Vagrant द्वारा उत्पन्न उपयोग कर सकते हैं: वहाँ दो विकल्प हैं।
  2. अपनी खुद की निजी कुंजी का प्रयोग करें - प्रदान की config.ssh.forward_agenttrue पर सेट किया जाता है, और वी एम सही ढंग से कॉन्फ़िगर

मैं दूसरे विकल्प का उपयोग है। एस जब मैं vagrant ssh चलाता हूं, तो मैं अपनी कस्टम निजी कुंजी के साथ मशीन में एसएसएच करता हूं।

अब मुझे उत्तरदायी एसएसएच को मेरी वाग्रेंट मशीन में जाने की ज़रूरत है और मैं इसके लिए Vagrantfile का उपयोग नहीं करना चाहता हूं।

तो मैं मार डाला:

ansible-playbook -i hosts/development --private-key=~/.ssh/id_rsa -u vagrant dev.yml

और मैं इस त्रुटि दी है:

fatal: [192.168.50.5] => SSH Error: Permission denied (publickey). while connecting to 192.168.50.5:22

hosts/inventory फ़ाइल बस अपना Vagrant वी एम (192.168.50.5) के आईपी रखती है।

मुझे नहीं पता कि उत्तरदायी वीएम में क्यों नहीं जा सकता है। यह vagrant ssh निष्पादित करते समय बिल्कुल उसी उपयोगकर्ता (vagrant) और कुंजी (id_rsa) का उपयोग कर रहा है।

हालांकि, vagrant ssh के साथ sshing में कोई समस्या नहीं है जबकि उपर्युक्त नहीं चलेंगे।

किसी भी सुझाव की बहुत सराहना की जाएगी।

+0

आप यह सुनिश्चित करें कि पोर्ट 22 और नहीं 2222 है कर रहे हैं? – Vor

+0

ने मेरे उत्तर के बाद कुछ संभावनाओं का शोध किया। मेरा मानना ​​है कि आपने वीएम वारंटी उपयोगकर्ता की अधिकृत_की में अपनी पबकी सेट नहीं की है। मैं पूरी तरह जरूरी होने तक योनि के लिए अपनी व्यक्तिगत कुंजी का उपयोग करने की अनुशंसा नहीं करता हूं। –

उत्तर

13

समस्या शायद आपकी hosts/inventory फ़ाइल के भीतर स्थित है। आपको उसमें उत्तरदायी के लिए उचित कनेक्शन कॉन्फ़िगरेशन जोड़ने, सहेजने और फिर से चलाने की आवश्यकता है।

192.168.50.5 ansible_ssh_port=22 ansible_ssh_user=vagrant ansible_ssh_private_key_file=~/.ssh/id_rsa 

आप बंदरगाह 22 का उपयोग नहीं कर रहे हैं, तो अपने मेजबान में ansible_ssh_port तदनुसार फ़ाइल समायोजित करें।

यह भी संभावना है कि आपने वाग्रेंट में अपनी पब्की सेट नहीं की है, इसलिए यह भी काम नहीं करेगा। इस परीक्षण के लिए, चलाएँ:

vagrant ssh-config | grep IdentityFile 
# result should be your private key and not 
# .vagrant/machines/default/virtualbox/private_key 

आप Vagrant वीएम में अपने pubkey नहीं डाल दिया है, तो आप इससे पहले कि आप अपनी निजी कुंजी कोशिश कर सकते हैं कि जोड़ने की आवश्यकता होगी।

संदर्भ: http://docs.ansible.com/ansible/intro_inventory.html#list-of-behavioral-inventory-parameters

संदर्भ: https://docs.vagrantup.com/v2/cli/ssh_config.html

+0

मेरे लिए ssh करने में सक्षम नहीं होने का कारण यह था कि मैं गलत निजी कुंजी फ़ाइल का उपयोग कर रहा था। उपयोग करने के लिए सही कुंजी 'योनि ssh-config' द्वारा प्रकट किया गया था। धन्यवाद! – luqo33

+0

मैं एक कस्टम इन्वेंट्री फ़ाइल का उपयोग कर संघर्ष कर रहा था। जब मैं सूची में होस्ट निर्दिष्ट कर रहा था, तो मेरा मुद्दा था कि मुझे कस्टम पोर्ट नंबर निर्दिष्ट करना था: '[डिफ़ॉल्ट] 127.0.0.1: 2201' अन्यथा यह 22 तक डिफ़ॉल्ट हो गया और मैं इसे 'ansible.cfg' में सेट नहीं कर सका या 'Vagrantfile' – Hafiz

+0

@ हाफिज आप इन्वेंट्री फ़ाइल में' ansible_ssh_port = 2201' का भी उपयोग कर सकते हैं –