2014-12-17 5 views
14

मैं एक नया Google क्लाउड परीक्षण उपयोगकर्ता हूं जो अमेज़ॅन ईसी 2 दुनिया से आ रहा है और मैं पूरी तरह से परेशान हूं कि मैं एक नए Google Compute Engine VM इंस्टेंस में एसएसएच के माध्यम से कैसे लॉग इन करता हूं।एक नए Google Compute Engine उदाहरण के लिए ssh कुंजी कैसे प्राप्त करें?

मैंने Google क्लाउड वेब कंसोल (एक CentOS 6.x छवि से, यदि यह मायने रखता है) के माध्यम से एक नया उदाहरण बनाया है। मैंने सृजन के रूप में एक रिक्त स्थान देखा जहां मैं मौजूदा एसएसएच कुंजी में पेस्ट कर सकता था लेकिन चूंकि यह मेरा पहला उदाहरण था, मेरे पास अभी तक कोई नहीं था। मुझे लगता है कि यह मुझे अमेज़ॅन ईसी 2 की तरह महत्वपूर्ण निर्माण प्रक्रिया के माध्यम से ले जाएगा। ऐसा नहीं हुआ ऐसा लगता है कि यह उदाहरण बनाया गया है लेकिन मैं यह नहीं समझ सकता कि इसके लिए एसएसएच कुंजी कैसे प्राप्त करें। उदाहरण वेब पेज में एक बटन है जो "एसएसएच" कहता है और यह मुझे एक पॉप-अप वेब ब्राउज़र विंडो के माध्यम से संक्षेप में लॉग इन करने देता है जो एक एसएसएच सत्र को अनुकरण करता है। हालांकि, यह केवल मुझे उपयोगकर्ता स्तर के खाते में, रूट नहीं है। पॉप-अप में उपयोगकर्ता को बदलने के लिए मेनू आइटम था और मैंने इसे "रूट" में बदल दिया जिसके बाद यह कनेक्शन त्रुटियों को उत्पन्न करने के अलावा कुछ भी नहीं करता है और अब मैं अपने उदाहरण में लॉग इन नहीं कर सकता।

मैंने खोज की है लेकिन Google Compute उदाहरणों के इस पहलू को समझाते हुए कोई सीधा-आगे दस्तावेज़ नहीं मिला है। मैंने वेब कंसोल की खोज की है लेकिन एसएसएच कुंजी निर्माण/चयन तंत्र नहीं मिला है, न ही किसी उदाहरण के लिए कुंजी बनाने या डाउनलोड करने का कोई तरीका।

क्या मुझे अपने अंत में मैन्युअल रूप से अपनी एसएसएच कुंजी बनाना है और उन्हें सृजन के दौरान फ़ॉर्म में पेस्ट करना है या क्या कोई अन्य स्पष्ट कदम है जो मुझे याद आ रहा है?

उत्तर

22

डिफ़ॉल्ट रूप से, एक नया Google कंप्यूट इंजन (जीसीई) वीएम इंस्टेंस में एसएसएच कुंजी पूर्व-असाइन नहीं होती है, इसलिए आप उन्हें "पुनर्प्राप्त नहीं कर सकते" क्योंकि वे मौजूद नहीं हैं- यह आपके लिए तैयार है, या gcloud जैसे टूल का उपयोग करें (नीचे देखें) जो आपको तब तक बनाने के लिए प्रेरित करेगा यदि आपके पास अभी तक एसएसएच कुंजी नहीं है।

आपके पास अपने नव निर्मित जीसीई वीएम से कनेक्ट करने के लिए कई विकल्प हैं।

एक विकल्प उदाहरण की सूची में उदाहरण के बगल में डेवलपर कंसोल जीयूआई में "एसएसएच" बटन का उपयोग करके कनेक्ट करना है, जो एक ब्राउज़र विंडो और उदाहरण के लिए टर्मिनल सत्र खोल देगा।

gcloud compute ssh example-instance 

आप झंडे और पर विकल्प का पूरा सेट देख सकते हैं:

आप SSH ग्राहक के माध्यम से कनेक्ट करने के लिए कमांड लाइन पर चाहते हैं, तो आप gcloud उपकरण (Google Cloud SDK का हिस्सा) का उपयोग कर सकते कई उदाहरणों के साथ gcloud compute ssh सहायता पृष्ठ।

यदि आपके पास पहले से ही एसएसएच कुंजी नहीं है, तो यह आपको उन्हें बनाने के लिए संकेत देगा और फिर उदाहरण से कनेक्ट होगा। यदि आपके पास पहले से चाबियाँ हैं, तो आप मौजूदा एसएसएच कुंजी का उपयोग कर सकते हैं, जो इसे उदाहरण में स्थानांतरित कर देगा।

डिफ़ॉल्ट रूप से, gcloud उम्मीद कुंजी निम्न पथ पर स्थित होना करने के लिए:

  • $HOME/.ssh/google_compute_engine - निजी कुंजी
  • $HOME/.ssh/google_compute_engine.pub - सार्वजनिक कुंजी

आप एक अलग से चाबी का पुन: उपयोग करना चाहते हैं gcloud के साथ स्थान, --ssh-key-file ध्वज का उपयोग कर सिमलिंक बनाने या gcloud पर इंगित करने पर विचार करें।

नोट: अगर आप gcloud बिल्कुल का उपयोग नहीं करते हैं, तो आप Setting up ssh keys at the instance level में वर्णित के रूप में आप Google Cloud console के माध्यम से gcloud या मैन्युअल के माध्यम से कर सकते हैं जो मैन्युअल रूप से उदाहरण के मेटाडेटा में SSH कुंजियों को जोड़ने के लिए है।

आप ssh-keygen का उपयोग करके अपनी खुद की कुंजी भी बना सकते हैं जो कि gcloud भी कवर के तहत उपयोग करेगा। आप gcloud के बजाय उदाहरण using ssh directly से जुड़ सकते हैं, लेकिन आप ऐसा करने के लिए अतिरिक्त पैरामीटर निर्दिष्ट करने की आवश्यकता होगी:

ssh -i KEY_FILE -o UserKnownHostsFile=/dev/null \ 
    -o CheckHostIP=no -o StrictHostKeyChecking=no \ 
    [email protected]_ADDRESS 

जो निम्नलिखित मानकों की आवश्यकता होगी:

  • KEY_FILE - [आवश्यक] फ़ाइल जहां कुंजी कंप्यूटर पर संग्रहीत होती है, उदाहरण के लिए, ~/.ssh/google_compute_engine

  • USER - [आवश्यक] उस उदाहरण में लॉग इन करने के लिए उपयोगकर्ता नाम। आम तौर पर, यह स्थानीय उपयोगकर्ता का उपयोगकर्ता नाम gcloud compute चला रहा है।

  • IP_ADDRESS - [आवश्यक] उदाहरण का बाहरी आईपी पता।

अधिक जानकारी के लिए, SSH docs देखें।

+2

मुझे लगता है कि आप कह रहे हैं कि जब कोई नया उदाहरण बनाया जाता है तो कोई एसएसएच कुंजी नहीं होती है? और मैं परंपरागत तरीके से एसएसएच कुंजी नहीं बना सकता जो मैं एक सेंटोस सर्वर के लिए करता हूं। इसके बजाय मुझे Google टूल glcoud का उपयोग करके एसएसएच कुंजी बनाना है। लेकिन एक बार बनाया गया, मैं सामान्य रूप से उदाहरण के लिए ssh कर सकते हैं (यानी gcloud या वेब आधारित एसएसएच के बिना)। मै उसे करने की एक कोशिश तो करूंगा। केवल शेष प्रश्न यह है कि क्या मुझे रूट पहुंच मिलेगी। ईसी 2 पर आप उदाहरण के निर्माण के दौरान रूट एसएसएच कुंजी सेट करते हैं और फिर उपयोगकर्ता स्तर के एसएसएच कुंजी बनाते हैं। क्या एसएसएच कुंजी रूट कुंजी को gcloud द्वारा उत्पन्न किया गया है? – steevithak

+1

डिफ़ॉल्ट रूप से उदाहरण में कोई एसएसएच कुंजी नहीं जोड़ा गया है। मैंने 'sshk-keygen' और' ssh' का उपयोग करने के बारे में जानकारी के उत्तर को अद्यतन किया है। आपका लॉगिन आपके स्थानीय उपयोगकर्ता नाम के समान होगा लेकिन इसमें पासवर्ड रहित 'सुडो' पहुंच होगी, इसलिए आप सीधे 'रूट' के रूप में लॉगिन नहीं करेंगे लेकिन 'सुडो' आपको रूट रूट एक्सेस विशेषाधिकार देगा। –