2012-12-09 8 views
24

जब मैं एक नया अमेज़ॅन ईसी 2 सर्वर बनाता हूं, तो मैं इसे सामान्य रूप से ssh का उपयोग करके कनेक्ट करता हूं।ईसीडीएसए के साथ अमेज़ॅन एडब्ल्यूएस ईसी 2 सर्वर के लिए एसएसएच फिंगरप्रिंट सत्यापन?

$ ssh myserver 
The authenticity of host 'ec2-12-34-567-890.compute-1.amazonaws.com (12.34.567.890)'  can't be established. 
ECDSA key fingerprint is 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07. 
Are you sure you want to continue connecting (yes/no)? 

मैं अंगुली की छाप से पहले मैं साइन इन की जांच कैसे करूँ:

मैं ठेठ चेतावनी दिखाई?

आदर्श रूप से एक उत्तर मूल निर्माण कंसोल लॉग के अलावा किसी चीज़ पर आधारित है - क्योंकि सिस्टम पुनरारंभ होने के बाद लॉग हो सकता है, या एक बड़ी प्रणाली स्थापना स्क्रिप्ट के दौरान जो बहुत सारे आउटपुट उत्पन्न करता है, या कनेक्शन है एक पुरानी प्रणाली जिसमें कुंजियां हैं जिन्हें सृजन के समय ट्रैक नहीं किया गया था।

+0

एक तरीका है एक ज्ञात फिंगरप्रिंट के साथ अपनी चाबियों का उपयोग करना (देखें: http://serverfault.com/a/581458/86472)। यदि आप इंस्टेंस को नियंत्रित करते हैं (और परिदृश्य के लिए योजना - यानी इंस्टॉलेशन सेटअप), बूट पर फिंगरप्रिंट प्राप्त करना आसान है - आप इसके साथ क्या करना चाहते हैं तो यह आपके ऊपर है (उदाहरण के लिए एस 3, रूट 53, क्लाउडवॉच पर प्रकाशित करें, उन्हें ईमेल करें , आदि।)। सबसे आसान चीजों में से एक है क्रॉन जॉब हर घंटे चलाना होगा जो आपके इंस्टेंस पर एक टैग अपडेट करता है (कंसोल से देखने योग्य) – cyberx86

उत्तर

24

@ joelparkerhenderson के जवाब को शामिल किया गया के रूप में, आप होस्ट कुंजी फिंगरप्रिंट सर्वर के प्रारंभिक लॉग, से जब मेजबान कुंजियों (cloud-init स्क्रिप्ट के द्वारा) उत्पन्न कर रहे हैं एकत्र कर सकते हैं इस तरह, आप उन्हें अपने लक्षित उदाहरण से निजी अमेज़ॅन नेटवर्क के भीतर किसी अन्य भरोसेमंद उदाहरण से कनेक्ट करके प्राप्त कर सकते हैं, इस प्रकार आप अपने आप को मध्य-मध्य-दौरे से सुरक्षित रख सकते हैं।

भरोसा उदाहरण (एक आप के लिए उंगलियों के निशान जानते हैं) टर्मिनल पर, आप निम्न उंगलियों के निशान एकत्र करने के लिए आदेश का उपयोग कर सकते हैं जब (172.33.31.199 निजी IP है):

$ ssh-keyscan 172.33.31.199 > ec2key 
$ ssh-keygen -l -f ec2key 
2048 02:fc:a5:ff:97:dd:41:63:bb:88:8b:29:4e:75:23:ed 172.33.31.199 (RSA) 
256 ea:bc:4d:5f:ae:00:48:75:45:ba:97:43:fe:e1:a3:e9 172.33.31.199 (ECDSA) 

आप एक और उदाहरण नहीं है, तो, जिनके फिंगरप्रिंट आप जानते हैं, केवल चाबियाँ एकत्र करने के उद्देश्य के लिए, नया अस्थायी उदाहरण बनाएं। पहले प्रारंभिक प्रारंभ लॉग का उपयोग करते हुए, नए अस्थायी उदाहरण के लिए कुंजी खोजें। सार्वजनिक नेटवर्क से अस्थायी उदाहरण से कनेक्ट करें। फिर निजी अमेज़ॅन नेटवर्क पर अस्थायी उदाहरण से कनेक्ट करके लक्ष्य उदाहरण की कुंजी एकत्र करें। इसके बाद आप अस्थायी उदाहरण को त्याग सकते हैं।

मैंने Guide for connecting to EC2 instance safely using WinSCP तैयार किया है।

+1

इस उत्तर का उपयोग करने के बाद (धन्यवाद!), मेरी पहली कोशिश (टी 2 इंस्टेंस के साथ) 'ssh-keyscan' के साथ कुछ भी उत्पन्न नहीं कर रही है। टी 2 एस को एक वीपीसी में लॉन्च करता है और मुझे अमेज़ॅन के निजी नेटवर्क तक पहुंचने के लिए गैर-टी 2 इंस्टेंस का उपयोग करना पड़ता था। –

13

यहां दो समाधान हैं जो ईसी 2 सिस्टम के निर्माण के दौरान मेरे लिए काम करते हैं।

समाधान 1: https://console.aws.amazon.com

  • नल "EC2" लिंक पर अमेज़न EC2 डैशबोर्ड

    • जाओ का प्रयोग करें।
    • नल "उदाहरण" बाएँ स्तंभ
    • उदाहरण के नाम पर टैप करें आप
    • चाहते का चयन करें बटन टैप करें "कार्रवाई" और "सिस्टम लॉग प्राप्त करें" (उर्फ "कंसोल आउटपुट")
    • कंसोल में में उत्पादन, आप कुंजी उत्पन्न होती दिखाई देगी

    समाधान 2: एडब्ल्यूएस EC2 कमांड लाइन का उपयोग करें

    आप aws आदेश का उपयोग कर सकते हैं या ec2-get-console-output कमांड। दोनों अमेज़ॅन से डाउनलोड के लिए उपलब्ध हैं।

    अपने EC2 निजी कुंजी पीईएम फ़ाइल, प्रमाणपत्र PEM फ़ाइल, क्षेत्र, और उदाहरण का उपयोग करने के लिए:

    ec2-get-console-output \ 
        --private-key pk-ABCDEF1234567890.pem \ 
        --cert cert-ABCDEF1234567890.pem \ 
        --region us-east-1c \ 
        i-e706689a 
    

    उत्पादन से पता चलता ssh इस तरह कुंजी उंगलियों के निशान की मेजबानी:

    ec2: -----BEGIN SSH HOST KEY FINGERPRINTS----- 
    ec2: 1024 e0:79:1e:ba:2e:3c:71:87:2c:f5:62:2b:0d:1b:6d:7b [email protected]2 (DSA) 
    ec2: 256 31:66:15:d2:19:41:2b:09:8a:8f:9f:bd:de:c6:ff:07 [email protected] (ECDSA) 
    ec2: 2048 ce:ec:3b:d3:34:3f:f3:45:76:81:9e:76:7a:d9:f5:e8 [email protected] (RSA) 
    ec2: -----END SSH HOST KEY FINGERPRINTS----- 
    

    aws उपकरण इसी तरह काम करता है।

    नोट: ये समाधान केवल निर्माण समय के दौरान काम करते हैं, या जब आप कंसोल लॉग प्राप्त कर सकते हैं। एक व्यापक समाधान के लिए जो किसी भी समय काम करता है, मार्टिन का जवाब देखें। आप चाबी लेने के लिए असफल हो

    enter image description here

    :

  • +1

    लेकिन यह केवल उदाहरण के पहले भाग के लिए काम करता है, जब लॉग में मुख्य पीढ़ी शामिल होती है। जब आप इंस्टेंस को पुनरारंभ करते हैं तो आपको अब फिंगरप्रिंट नहीं मिल सकते हैं। कोई अन्य तरीका? –

    +1

    @ मार्टिन अच्छा बिंदु! आदर्श रूप से अमेज़ॅन ईसी 2 डैशबोर्ड पर एक कॉलम के रूप में फिंगरप्रिंट जोड़ सकता है। लोगों को मदद करने के लिए प्रोत्साहित करने के लिए मैं इस प्रश्न में एक बक्षीस जोड़ूंगा। – joelparkerhenderson

    +1

    धन्यवाद, यह एक जबरदस्त मदद थी। एडब्ल्यूएस मेरा पहला एनवी सेट अप है, इसलिए ई 2 सी डैश के माध्यम से चाबियाँ प्राप्त करने में सक्षम होना बहुत कम भ्रमित था। – ouonomos

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