सवाल मैं एसएसएच निजी कुंजी से सार्वजनिक कुंजी कैसे प्राप्त करूं?


द्वारा उत्पन्न एक एसएसएच निजी कुंजी ssh-keygen एक सार्वजनिक कुंजी हिस्सा है। मैं निजी कुंजी से इस सार्वजनिक कुंजी को कैसे प्राप्त करूं? मैंने अपनी सार्वजनिक कुंजी खो दी है और सर्वर में इस सार्वजनिक कुंजी की सामग्री डालने की आवश्यकता है authorized_keys फ़ाइल और एक नई कुंजी जोड़ी बनाना नहीं चाहते हैं।

वैकल्पिक रूप से phrased: मैं कैसे बना सकता हूँ id_rsa.pub ए से फाइल करें id_rsa फाइल?


371
2017-07-18 09:57


मूल


pbcopy > ~/.ssh/id_rsa.pub उफ़। - Nick T
@NickT - pbcopy एक MacOSX कमांड है। इसके अलावा, अगर आप क्लिपबोर्ड पर किसी अन्य चीज को रीबूट, लॉग आउट या कॉपी कर चुके हैं तो यह बेकार है। - jsnfwlr


जवाब:


मुझे सर्वर फॉल्ट पर जवाब मिला है: निजी कुंजी से सार्वजनिक एसएसएच कुंजी बनाएं?

विकल्प -y सार्वजनिक कुंजी आउटपुट करता है:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

एक साइड नोट के रूप में, सार्वजनिक कुंजी की टिप्पणी खो जाती है। मेरे पास ऐसी साइट है जिसके लिए टिप्पणी (लॉन्चपैड?) की आवश्यकता है, इसलिए आपको संपादित करने की आवश्यकता है ~/.ssh/id_rsa.pub और टिप्पणी और कुंजी डेटा के बीच एक स्थान के साथ पहली पंक्ति में एक टिप्पणी संलग्न करें। एक उदाहरण सार्वजनिक कुंजी नीचे छंटनी दिखाया गया है।

ssh-rsa AAAA..../VqDjtS5 ubuntu@ubuntu

एसएसएच एजेंट में जोड़े गए कुंजियों के लिए (एक प्रोग्राम जो पृष्ठभूमि में चलता है और फिर से बार-बार कीफाइल पासफ्रेज़ को फिर से दर्ज करने की आवश्यकता से बचाता है), आप इसका उपयोग कर सकते हैं ssh-add -L एजेंट में जोड़े गए कुंजियों के लिए सार्वजनिक कुंजी सूचीबद्ध करने के लिए आदेश (के माध्यम से ssh-add -l)। यह तब उपयोगी होता है जब एसएसएच कुंजी स्मार्ट कार्ड पर संग्रहीत होती है (और निजी कुंजी फ़ाइल तक पहुंच संभव नहीं है)।


577
2017-07-18 10:12



आपने इसे केक का टुकड़ा बना दिया। धन्यवाद - bragboy
कृपया ध्यान दें कि आपकी निजी कुंजी फ़ाइल ~/.ssh/id_rsa आपके उपयोगकर्ता नाम तक ही सीमित होना चाहिए। उपयोग $ sudo chmod 600 ~/.ssh/id_rsa और इसे प्रतिबंधित करने के लिए अपने मूल प्रमाण-पत्र दर्ज करें, फिर आप सार्वजनिक कुंजी फ़ाइल आउटपुट कर सकते हैं। अन्यथा आपको अप्रतिबंधित निजी कुंजी फ़ाइल चेतावनी मिलेगी। - Mark Mikofski
@MarkMikofski के लिए कोई ज़रूरत नहीं है sudo, आप पहले से ही निजी कुंजी का मालिक होना चाहिए। अन्यथा आप इसे पहले स्थान पर नहीं पढ़ सकते हैं। - Lekensteyn
@Lekensteyn धन्यवाद, निश्चित रूप से आप सही हैं! भी 400 निजी कुंजी फ़ाइल टाइप करने के लिए लिखने की आवश्यकता नहीं होने के बाद अनुशंसा की जाती है। सही आदेश होना चाहिए $ chmod 400 ~/.ssh/id_rsa - Mark Mikofski
निजी कुंजी टिप्पणी खो गई है। देख stackoverflow.com/questions/38290929/... - weberjn


यह एक समाधान है विशेष रूप से अमेज़ॅन एडब्ल्यूएस और जीसीई पर क्लाउड छवियों सहित, उनके रिमोट मशीनों में विंडोज़ को एसएसएच का उपयोग करने वाले उपयोगकर्ताओं के लिए।

(अस्वीकरण)

मैंने हाल ही में जीसीई पर नई तैनाती वीएम छवियों में रिमोट लॉग के लिए इस समाधान का उपयोग किया।


उपकरणों का इस्तेमाल:

  1. puttygen
  2. WinSCP

प्रदर्शन करने के लिए कदम:

  1. Puttygen का उपयोग कर एक सार्वजनिक / निजी कुंजी जोड़ी उत्पन्न करें।
  2. क्लाउड या दूरस्थ स्थान में अपने सर्वर पर एक सार्वजनिक कुंजी अपलोड करें।

विवरण (इसे कैसे करें):

  1. एक कुंजी / जोड़ी उत्पन्न करें या मौजूदा निजी कुंजी का उपयोग करें:

    यदि आपके पास निजी कुंजी है:

    Puttygen खोलें, लोड बटन दबाएं और अपनी निजी कुंजी (* .pem) फ़ाइल का चयन करें।

    यदि तुम करो नहीं एक निजी कुंजी है:

    • ओपन Puttygen,
    • पैरामीटर अनुभाग के भीतर वांछित कुंजी प्रकार SSH2 डीएसए (आप आरएसए या डीएसए का उपयोग कर सकते हैं) का चयन करें ... और यह महत्वपूर्ण है कि आप पासफ्रेज फ़ील्ड को खाली छोड़ दें,
    • जनरेट करें (सार्वजनिक / निजी) कुंजी जोड़ी उत्पन्न करने के लिए निर्देशों का पालन करें।

    Sample Key Generation pic

  2. एक नई 'अधिकृत_की' फ़ाइल बनाएं (नोटपैड के साथ):

    PUTTY कुंजी जनरेटर के "OpenSSH अधिकृत_keys फ़ाइल में चिपकाने के लिए सार्वजनिक कुंजी" से अपने सार्वजनिक कुंजी डेटा की प्रतिलिपि बनाएँ, और कुंजी डेटा को "अधिकृत_की" फ़ाइल में पेस्ट करें।

    सुनिश्चित करें कि इस फ़ाइल में टेक्स्ट की केवल एक पंक्ति है।

  3. लिनक्स सर्वर पर कुंजी अपलोड करें:

    • ओपन विनएससीपी,
    • एसएफटीपी फ़ाइल प्रोटोकॉल का चयन करें और अपने एसएसएच क्रेडेंशियल्स के साथ लॉग इन करें।
    • सफलता पर, आप अपनी रिमोट मशीन पर होम निर्देशिका संरचना देखते हैं।

    दूरस्थ मशीन पर होम निर्देशिका में अधिकृत_की फ़ाइल अपलोड करें।

  4. उचित अनुमतियां सेट करें:

    एक बनाओ .ssh निर्देशिका (यदि यह अस्तित्व में नहीं है)

    कॉपी करें authorized_keys.ssh निर्देशिका में फ़ाइल करें (यह किसी मौजूदा को प्रतिस्थापित करेगा authorized_keys फ़ाइल; इस पर ध्यान दें)।

    अगर फ़ाइल मौजूद है, तो बस इस फ़ाइल की सामग्री को मौजूदा फाइल में जोड़ें।

    अनुमतियां सेट करने के लिए आदेश चलाएं:

    sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
    

अब आप हर समय क्रेडेंशियल्स दर्ज किए बिना रिमोट मशीन में एसएसएच करने में सक्षम होंगे।

आगे की पढाई:

  1. विंडोज के तहत एसएसएच कुंजी जेनरेट और अपलोड करना

  2. OpenSSH कुंजी, प्रमाणपत्र .pem और .pub का उपयोग कर पासवर्ड के बिना प्रमाणीकरण


12
2017-11-20 06:18



अगर आपकी होम निर्देशिका एन्क्रिप्ट की गई है, तो यह करें: askubuntu.com/questions/439184/... - devprashant
यद्यपि आपका उत्तर प्रश्न के लिए वास्तव में प्रासंगिक नहीं है, इसलिए मैं आपके उत्साह के कारण इसके लिए वोट देता हूं। - Truong Nguyen