2013-01-20 11 views
8

मुझे अमेज़ॅन ec2 सर्वर से गिट रिपॉजिटरी क्लोन करने में एक अजीब समस्या है। यह Ubuntu 12.04 चल मेरे कंप्यूटर में से एक पर किसी भी समस्याओं के बिना काम करता है, जबकि 12.10 का उपयोग कर एक दूसरे पर यह मुझे एक त्रुटि देता है:। एसएसआई कॉन्फ़िगरेशन अमेज़ॅन ec2 और गिट

ssh: Could not resolve hostname ec2server: Name or service not known 
fatal: The remote end hung up unexpectedly 

ऐसा लगता है कि यह मेरे कॉन्फ़िग फ़ाइल पहचान नहीं कर रहा है। मैं क्लोन करने के लिए निम्नलिखित Git आदेश का उपयोग करें:।

sudo git clone ec2server:/var/www/project.git 

या

sudo git clone ec2xxx.compute-1.amazonaws.com:/var/www/project.git 

दो config फाइल, दोनों कंप्यूटरों पर समान हैं अंदर ~/निम्न सामग्री के साथ ssh:

Host ec2server 
    Hostname ec2XXX.compute-1.amazonaws.com 
    User ubuntu 
    IdentityFile ~/.ssh/mykey.pem 

यदि मैं वास्तविक पते के साथ ec2server को प्रतिस्थापित करता हूं तो मुझे निम्न त्रुटि मिलती है:

Cloning into 'project'... 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

अग्रिम धन्यवाद।

उत्तर

5

हाल ही में मैं प्रणाली है जो काम कर विन्यास आयोजित पुन: स्थापित करने के लिए किया था और मैं इसे दोहराने में कामयाब नहीं किया है, तो यह लिनक्स संस्करण (बहुत संभावना) के बारे में नहीं है। मैंने जो करने में कामयाब रहा, यह है कि मैं अपने घर निर्देशिका में भंडार क्लोन करने के लिए उल्लिखित मूल स्क्रिप्ट का उपयोग करने में कामयाब रहा। यहां इसने नाम सही ढंग से उठाया, लेकिन अगर मैंने/var/www में नेविगेट किया, तो मैं पहले क्या कर रहा था, उसने मुझे एक ही त्रुटि दी: ec2server नहीं मिला ...।तो मुझे लगता है कि समस्या को अनुमतियों + आदेश संयोजन के साथ कुछ करना है। यदि कोई इसे समझने के लिए इसे समझ सकता है, तो मैं उसके जवाब को सही उत्तर के रूप में चिह्नित करूंगा, तब तक मैं अपना सही सही चिन्हित कर रहा हूं, क्योंकि यह सही के सबसे नज़दीक है।

अद्यतन

मैं इसे समझ से बाहर क्या समस्या थी: मैं क्रम में/var/www फ़ोल्डर पर अनुमति को बदलने के लिए है कि निर्देशिका में क्लोन करने के लिए सक्षम होने के लिए किया था। अब यह 777 है (केवल स्थानीय मशीन पर देव के लिए उपयोग किया जाता है)।

+0

अच्छा लगता है, और यह आपके लिए काम करता है, इसलिए +1। मेरा जवाब पर्याप्त विशिष्ट नहीं था। – VonC

5

यह आमतौर पर एक अनुमति मुद्दा है।
आपकी कॉन्फ़िगरेशन फ़ाइल की मूल निर्देशिकाओं पर chmod आपके दो कंप्यूटरों के बीच भिन्न हो सकता है।
(और मैं सिर्फ तत्काल मूल निर्देशिका .ssh के बारे में बात कर रहा हूँ नहीं, लेकिन यह भी सभी माता पिता निर्देशिका)

देखें "Git SSH authentication", लेकिन यह भी पता है कि अगर माता पिता निर्देशिका के किसी भी समूह या दुनिया के लिए लिखने योग्य है , एसएसएच काम नहीं करेगा।


यह भी ध्यान रखें अपने दूसरे आदेश सही नहीं है, और होना चाहिए कि:

git clone [email protected]/var/www/project.git 

नहीं ':' (एक ':' एक config फ़ाइल का उपयोग कर, एक scp तरह से मतलब है वाक्यविन्यास)

यह केवल तभी काम कर सकता है यदि आपके पास ~/.ssh/id_rsa और ~/.ssh/id_rsa.pub है।
आप mykey.pem है, तो आप जरूरत ssh के लिए एक config फ़ाइल को पता है, जहां अपने सार्वजनिक और निजी कुंजियों कर रहे हैं, जिसका मतलब है कि केवल यह काम कर सकते हैं:

git clone ec2server:/var/www/project.git 

एक अन्य chack (this thread और यह forum के बाद) यह जांचना है कि कोई DNS/DHCP समस्या है ("Working with git behind a dynamic DNS" में थोड़ा सा)।

Host ec2server 
    Hostname 1xx.xxx.xxx.xxx # ip address of ec2XXX.compute-1.amazonaws.com 
    User ubuntu 
    IdentityFile ~/.ssh/mykey.pem 
+0

लेकिन पारेंट निर्देशिका होम निर्देशिका – Pio

+0

@Pio आप '/ home/yourLogin/.ssh' के बजाय'/home/yourLogin' में अपनी 'कॉन्फ़िगरेशन' फ़ाइल का मतलब है? एसएसएच के लिए कॉन्फ़िगरेशन फाइलों के उदाहरणों के लिए – VonC

+0

@Pio http://stackoverflow.com/a/10042145/6309 या http://stackoverflow.com/a/8172628/6309 देखें। – VonC

संबंधित मुद्दे