"योनि ssh" के साथ ssh एजेंट अग्रेषण का उपयोग कैसे करें?


107

एक योनि बॉक्स पर एक नई SSH कुंजी जोड़ी बनाने के बजाय, मैं एजेंट होस्ट का उपयोग करके अपने मेजबान मशीन पर मेरे पास मौजूद प्रमुख जोड़ी का फिर से उपयोग करना चाहूंगा । मैंने Vagrantfile में TRUE के लिए config.ssh.forward_agent सेट करने की कोशिश की है , फिर VM को रिबूट किया, और उपयोग करने की कोशिश की:

vagrant ssh -- -A

... लेकिन मैं अभी भी एक पासवर्ड के लिए प्रेरित हो रहा हूं जब मैं एक git चेकआउट करने की कोशिश करता हूं। कोई भी विचार जो मुझे याद आ रहा है?


यदि आपके पास आपकी ssh कीज़ ठीक से नहीं हैं, तो git को पासवर्ड नहीं पूछना चाहिए, लेकिन आपको बता दें कि आपने अनुमति से इनकार कर दिया है। मुझे लगता है कि आपसे पासवर्ड मांगा जा रहा है क्योंकि आप git@github.com (ssh) के बजाय https से क्लोन कर रहे हैं। मेरे 2 सेंट।
एलेक्सावर

जवाबों:


89

मैं ओएस एक्स माउंटेन शेर पर योनि 2 का उपयोग कर रहा हूं।

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end
  1. config.ssh.private_key_path आपकी स्थानीय निजी कुंजी है
  2. आपकी निजी कुंजी स्थानीय ssh- एजेंट के लिए उपलब्ध होनी चाहिए। यदि आप ssh-add -Lइसे सूचीबद्ध नहीं करते हैं , तो आप इसके साथ जांच कर सकते हैंssh-add ~/.ssh/id_rsa
  3. ~/.ssh/authorized_keysVagrant VM पर आपको सार्वजनिक कुंजी जोड़ने के लिए मत भूलना । आप इसे कॉपी-और-पेस्ट कर सकते हैं या ssh-copy-id जैसे टूल का उपयोग कर सकते हैं

8
मैंने देखा कि ऊपर सेट करने के बाद, मैं "योनि" उपयोगकर्ता को "गिट क्लोन" के लिए उपयोग कर सकता हूं, लेकिन मैं "रूट" उपयोगकर्ता को "गिट क्लोन" का उपयोग नहीं कर सकता हूं। क्या आप जानते हैं कि यह मुद्दा क्या है? धन्यवाद
वियतनाम गुयेन

7
config.ssh.private_key_path = "~/.ssh/id_rsa"Vagrant पर लटका देता है Waiting for VM to boot
एपीजेबेकर

14
आपको योनि डालने की कुंजी भी रखने की आवश्यकता हैconfig.ssh.private_key_path = [ '~/.vagrant.d/insecure_private_key', '~/.ssh/id_rsa' ]
Calin

3
ओएस एक्स पर, मुझे ssh-add -Kकाम के साथ (साथ ही config.ssh.forward_agent = true) ओएस एक्स कुंजी श्रृंखला में निजी कुंजी जोड़ने का पता चला । इस उत्तर को देखें
फ्लिम

2
मुझे @apennebaker के समान त्रुटि मिली। और जिन चरणों के बाद कैलिन ने सुझाव दिया, उनकी मदद नहीं की गई ... मेरे लिए जो काम किया गया था, वह मेरे होस्ट ओएस से कीचेन में कुंजी जोड़ रहा था और config.ssh.pStreet_key_path असाइनमेंट को अक्षम कर रहा था।
एलेक्सावर

80

इसे Vagrantfile में जोड़ें

Vagrant::Config.run do |config|
   # stuff
   config.ssh.forward_agent = true
end

डॉक्स देखें


11
सुनिश्चित करें कि आपने अंतर्निहित होस्ट पर ssh-add किया है और कुंजी डिक्रिप्टेड है।
EnabrenTane

1
ध्यान दें कि Windows ssh- एजेंट को ऑटो-स्टार्ट नहीं करता है, जिसे आपको अपनी ssh कीज़ को आगे बढ़ाने के लिए चलाने की आवश्यकता होती है। Windows पर ssh-Agent autostarting को सेटअप करने के लिए इस गाइड का पालन करें
नेफ्फा

62
यह जवाब शायद इतने वोटों के लायक नहीं है। ओपी स्पष्ट रूप से कहता है कि उन्होंने config.ssh.forward_agentअपनी कॉन्फ़िग फ़ाइल में जोड़ा है, इसलिए यह उत्तर क्या नई जानकारी प्रदान कर रहा है? यहां तक ​​कि लिंक पहले से ही सवाल में है।
ट्रिंडाज़

7
@ टिंडाराज़ आप पूरी तरह सही हैं। मैं समझा नहीं सकता कि यह मेरे सबसे लोकप्रिय उत्तरों में से एक क्यों है। फिर भी इसने कम से कम 52 लोगों की मदद की है, इसलिए मुझे यह कहना होगा कि जीत।
एनाब्रेनटेन

1
यह उत्तर वास्तव में कोई नई जानकारी नहीं लाता है, लेकिन दूसरी तरफ यह वह सब कुछ है जो एक वैग्रंट-प्रोविजंड मशीन के लिए कॉन्फ़िगर करने की आवश्यकता है। कम से कम बशर्ते आपके पास एजेंट फॉरवर्डिंग कनेक्टिंग मशीन पर सही तरीके से सेट हो (यानी, अन्य, गैर-योनि मशीनों के लिए अग्रेषण कार्य)।
टेक्न्राफ

20

आवधिक फ़ाइल में "config.ssh.forward_agent = true" जोड़ने के अलावा, सुनिश्चित करें कि होस्ट कंप्यूटर को एजेंट अग्रेषण के लिए सेट किया गया है। गितुब इसके लिए एक अच्छा मार्गदर्शक प्रदान करता है । (समस्या निवारण अनुभाग देखें)।


7

मुझे 1.4.3 पर उपरोक्त उत्तरों के साथ यह काम करना था, लेकिन 1.5 पर काम करना बंद कर दिया। मुझे अब ssh-add1.5 के साथ पूरी तरह से काम करने के लिए दौड़ना होगा।

अभी के लिए मैं अपनी अनुवर्ती प्रावधान स्क्रिप्ट में निम्न पंक्ति जोड़ता हूं। - name: Make sure ssk keys are passed to guest. local_action: command ssh-add

मैंने अपने सेटअप की एक गस्ट भी बनाई है: https://gist.github.com/KyleJamesWalker/9538912


मुझे हमेशा 1.4 और 1.5 के साथ ssh-add का उपयोग करना पड़ा है, क्योंकि आगे चलने के लिए कोई एजेंट नहीं था
iheggie

5

यदि आप विंडोज पर हैं, तो Vagrant में SSH फ़ॉरवर्डिंग डिफ़ॉल्ट रूप से ठीक से काम नहीं करता है (नेट-शश में बग के कारण)। इस विशेष वैगरेंट बग रिपोर्ट देखें: https://github.com/mitchellh/vagrant/issues/1735

हालाँकि, एक समाधान है! बस अपने VagrantFile में एक सरल प्रावधान स्क्रिप्ट के माध्यम से Vagrant VM के लिए अपने स्थानीय SSH कुंजी को ऑटो-कॉपी करें। यहाँ एक उदाहरण दिया गया है: https://github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783


2

जब हमने हाल ही में vagrant-awsवैग्रांट 1.1.5 के साथ प्लगइन की कोशिश की , तो हम SSH एजेंट को अग्रेषित करने के साथ एक समस्या में भाग गए। यह पता चला कि वैग्रंट IdentitiesOnly=yesइसे बदलने के लिए एक विकल्प के बिना मजबूर कर रहा था no। यह वैग्रांत को केवल उस निजी कुंजी को देखने के लिए मजबूर करता है जिसे हमने VagrantfileAWS प्रदाता के लिए सूचीबद्ध किया था ।

मैंने एक ब्लॉग पोस्ट में अपने अनुभव लिखे । यह किसी बिंदु पर एक पुल अनुरोध में बदल सकता है।


2
क्या निर्माण के लिए मेजबान मशीन पर अंडरलेइंग सार्वजनिक कुंजी को स्वचालित रूप से कॉपी करने का एक तरीका है Vagrant up? अभी मुझे मशीन बनानी है, मैन्युअल रूप से लॉग इन करना है और फिर अपनी सार्वजनिक कुंजी को /home/vagrant/.ssh/authorized_keys
Noah

1

सुनिश्चित करें कि VM अपने SSH एजेंट को लॉन्च नहीं करता है। मेरे अंदर यह रेखा थी~/.profile

eval `ssh-agent`

इसे हटाने के बाद, SSH एजेंट ने काम किया।


0

वास्तविक समस्या डिफ़ॉल्ट पोर्ट-फ़ॉरवर्ड के रूप में 127.0.0.1:2222 का उपयोग करके वैग्रंट है। आप एक जोड़ सकते हैं (2222 नहीं, 2222 पहले से ही डिफ़ॉल्ट रूप से व्याप्त है)

config.vm.network "अग्रेषित_पोर्ट", अतिथि: 22, मेजबान: 2333, host_ip: "0.0.0%"

"0.0.0.0" रास्ता बाहरी कनेक्शन से अनुरोध है। उसके बाद ssh -p 2333 vagant@192.168.2.101 (अपने स्वयं के होस्ट आईपी पते में बदलाव, डूड) बहुत अच्छा काम करेगा। मुझे धन्यवाद दो, बस मुझे लीफेंग बुलाओ!


0

विंडोज पर, समस्या यह है कि वैग्रैंट को git-bash के ssh-agent के साथ संवाद करने का तरीका नहीं पता है। हालाँकि, यह जानते हैं कि कैसे PuTTY के पेजेंट का उपयोग करना है। इसलिए, जब तक पेजेंट चल रहा होता है और आपकी SSH कुंजी लोड हो जाती है, और जब तक आप config.ssh.forward_agent सेट कर लेते हैं, तब तक यह काम करना चाहिए।

देखें इस टिप्पणी जानकारी के लिए।

यदि आप पेजेंट का उपयोग करते हैं, तो Windows पर SSH कुंजियों को कॉपी करने के लिए Vagrantfile को अपडेट करने का समाधान अब आवश्यक नहीं है।

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