मैं अधिकृत फ़ाइल में एसएसएच कुंजी कैसे जोड़ूं?

मेरे पास अमेज़ॅन ईसी 2 पर एक उबंटू सर्वर है, जिसे मैं विकास के लिए उपयोग करता हूं, और आज मैंने मूर्खता से सब कुछ साफ कर दिया ~/.ssh/authorized_keys फ़ाइल। सौभाग्य से मेरे पास एक एसएसएच खुला है, इसलिए मैं अभी भी जुड़ा हुआ हूं, और फ़ाइल को ठीक कर सकता हूं, लेकिन जब मैं अपनी कुंजी फ़ाइल को वापस रखने की कोशिश करता हूं, तो यह काम नहीं करता है । मुझे अभी भी मेरी स्थानीय मशीन पर सर्वर से अनुमति नहीं मिली है ।

authorized_keys अनुमतियाँ है 600. मैंने एसएसएच-आरएसए के साथ अपनी एसएसएच कुंजी को जोड़ने और एसएसएच-आरएसए को छोड़ने की कोशिश की है । मैंने एसएसएच कुंजी को सभी एक पंक्ति बनाने की भी कोशिश की, लेकिन यह भी काम नहीं किया ।

क्या कुछ और है जो मुझे करना है जैसे फ़ाइल को कुछ कैसे पुनः लोड करें?

आपको चाहिए कभी नहीं फ़ाइल को इसकी सामग्री से शुरू करके सहेजें -----BEGIN RSA PRIVATE KEY----- सर्वर पर, वह आपका है निजी कुंजी। इसके बजाय, आपको रखना होगा सार्वजनिक में कुंजी ~/.ssh/authorized_keys फ़ाइल।

इस सार्वजनिक कुंजी है .pub एक्सटेंशन का उपयोग करते समय उत्पन्न ssh-keygen और इसकी सामग्री शुरू होती है ssh-rsa AAAAB3. (बाइनरी प्रारूप के उत्तर में वर्णित है यह सवाल).

की अनुमति ~/.ssh सर्वर पर 700 होना चाहिए । फ़ाइल ~/.ssh/authorized_keys (सर्वर पर) 600 का एक मोड होना चाहिए । क्लाइंट-साइड पर (निजी) कुंजी की अनुमति 600 होनी चाहिए ।

यदि निजी कुंजी पासवर्ड से सुरक्षित नहीं थी, और आप इसे सर्वर पर रखते हैं, तो मैं आपको एक नया उत्पन्न करने की सलाह देता हूं:

ssh-keygen -t rsa

आप इसे छोड़ सकते हैं यदि आप पूरी तरह से सुनिश्चित हैं कि कोई भी सर्वर से हटाई गई निजी कुंजी को पुनर्प्राप्त नहीं कर सकता है ।

यदि यह मदद नहीं करता है, तो चलाएं ssh अधिक वर्बोसिटी के विकल्पों के साथ:

ssh -vvv user@example.com

सर्वर साइड पर, आप समीक्षा कर सकते हैं /var/log/auth.log जानकारी के लिए.

रिमोट मशीन में अपनी सार्वजनिक कुंजी स्थापित करने का एक वैकल्पिक तरीका authorized_keys:

cat ~/.ssh/id_rsa.pub | ssh USER@HOST "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

कुछ फायदे:

  • आवश्यकता नहीं है ssh-copy-id स्थापित किया जाना है ।

  • गारंटी देता है कि mkdir संलग्न करने का प्रयास करने से पहले काम करता है id_rsa.pub को authorized_keys.

यदि आपके पास लॉगिन आधारित प्रमाणीकरण है तो उपयोग करें ssh-copy-id अपनी सार्वजनिक कुंजियों को दूरस्थ सर्वर से जोड़ने के लिए ।

ssh-copy-id user@host
local> scp .ssh/id_rsa.pub remote.com:
local> ssh remote.com
remote> cat id_rsa.pub >> .ssh/authorized_keys
remote> rm id_rsa.pub
remote> exit

सबसे आसान तरीका कॉपी और पेस्ट करना है । ..

पहले अपनी स्थानीय सार्वजनिक कुंजी की सामग्री को देखें / कॉपी करें id_rsa.pub शुरुआत सहित "एसएसएच-आरएसए "जब तक यह आपके ईमेल पते के साथ समाप्त नहीं होता है:

cat ~/.ssh/id_rsa.pub

फिर संपादित करें authorized_keys सर्वर पर और उस फ़ाइल में किसी अन्य कुंजी के नीचे अपने क्लिपबोर्ड की सामग्री पेस्ट करें:

nano ~/.ssh/authorized_keys

और बचाओ Ctl+O, फ़ाइल से बाहर निकलें Ctl+X बाहर निकलें SSH सत्र exit और यह काम करने की पुष्टि करने के लिए वापस लॉग इन करने का प्रयास करें । अगर यह पासवर्ड नहीं मांगता है तो यह काम करता है ।

रिमोट मशीन पर एक शेल प्राप्त करें जहां आप कुंजी डालना चाहते हैं और फिर आप आवश्यक फ़ाइलों और निर्देशिकाओं को बनाने के लिए इस एक-लाइनर को चला सकते हैं, उनकी अनुमतियां सेट कर सकते हैं और फ़ाइल की कुंजी जोड़ सकते हैं । बेशक आपको बदलना होगा KEYGOESHERE नीचे भाग और इसके बाद टिप्पणी ।

mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && echo "ssh-rsa KEYGOESHERE user@remotehost or note" >> ~/.ssh/authorized_keys

मैंने सोचा कि मैं इसमें योगदान दे सकता हूं क्योंकि यह विशेष रूप से एडब्ल्यूएस उदाहरणों के बारे में है और सभी उत्तर केवल समस्या को लिनक्स मुद्दे के रूप में मानते हैं, जैसे कि यह हार्डवेयर का एक टुकड़ा था । पहली बात आपको समझने की जरूरत है कि आपको कभी भी, कभी भी, ईसी 2 इंस्टेंस को हार्डवेयर के रूप में नहीं मानना चाहिए । यह सिर्फ आपके लिए और अधिक काम करने जा रहा है उन्हें अस्थिर के रूप में व्यवहार करें । यह सबसे बड़ी बाधा है जो मैं लोगों को एडब्ल्यूएस के साथ देखता हूं । अपने उदाहरण का एक एएमआई बनाएं और उस कुंजी को इंजेक्ट करें जिसकी आपको नए उदाहरण में आवश्यकता है । क्लाउड-इनिट इसके लिए देखभाल करेगा you.In मूल के एएमआई से नया उदाहरण बनाते समय आपको बस इतना करना है कि सही सार्वजनिक कुंजी का उपयोग करें । यदि, अनुमोदित उत्तर की टिप्पणियों की तरह आप पब और पीईएम फाइलों की अपनी खुद की कुंजी जोड़ी उत्पन्न करना चाहते हैं तो एडब्ल्यूएस आपको ईसी 2 में उपयोग के लिए अपनी सार्वजनिक कुंजी अपलोड करने का विकल्प प्रदान करता है ।

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#how-to-generate-your-own-key-and-import-it-to-aws

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

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

यदि आप आयात करने के लिए सार्वजनिक कुंजी फ़ाइलों की एक विशाल सूची दे रहे थे तो यह भिन्नता सहायक हो सकती है: -)

$ for i in $(cat ListOfPubKeyFiles.txt) ; do cat $i | ssh User@Hostname "cat >> ~/.ssh/authorized_keys"; done

वर्षों बाद, यह-अभी भी - प्रासंगिक और सक्रिय लगता है; केवल एक अवलोकन करना चाहता था, एक गोली को चकमा देने के बारे में बात करना: "सौभाग्य से मेरे पास एक एसएसएच खुला है, इसलिए मैं अभी भी जुड़ा हुआ हूं [ । .] "- शीश! ; डीपी

मेरे जन्मदिन पर संपादित की गई इस पोस्ट ने मुझे दो महीने पहले मेरे जन्मदिन पर बचाया था ।