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


49

मैंने authorized_keysफ़ाइल के लिए PuTTYgen द्वारा उत्पन्न सार्वजनिक कुंजी को जोड़कर अपने घर पीसी से कनेक्शन स्वीकार करने के लिए अपना लिनक्स सर्वर स्थापित किया ।

अब मैं उसी मशीन से जुड़ने की कोशिश कर रहा हूं, लेकिन इस बार दूसरी उबंटू मशीन से। मुझे एक ही निजी कुंजी का उपयोग करना होगा (एक अजीब कारण के लिए, पूछें नहीं ..) और मुझे अपने क्लाइंट उबंटू पर इसे स्थापित करने का तरीका नहीं मिला।

क्या मुझे इसे किसी और प्रारूप में बदलना होगा?

जवाबों:


24

मुझे यकीन नहीं है कि आपकी निजी कुंजी ubuntu में काम करेगी, लेकिन इसकी कीमत एक शॉट है। बस के /home/yourName/.ssh/रूप में निजी कुंजी id_rsa, और सार्वजनिक कुंजी के नाम की कुंजी की प्रतिलिपि बनाएँ id_rsa.pub

यदि वह काम नहीं कर रहा है, तो आप ssh-keygenसर्वर के लिए नई सार्वजनिक कुंजी का उपयोग करके और कॉपी करके अपनी स्वयं की ssh की-जोड़ी बना सकते हैं , और ssh इस प्रकार है:

ssh -i ~/.ssh/id_rsa_ubuntu.pub <hostName>

मैंने इसके साथ नहीं खेला है, लेकिन मैंने सुना है कि ssh- एजेंट का उपयोग ssh-keys को प्रबंधित करने के लिए भी किया जा सकता है।


3
यह उबंटू में काम करता है। हालाँकि, यह सुनिश्चित करें कि यदि आपके पास पहले से एक है (तब तक नई कुंजी की प्रतिलिपि बनाकर) जब तक आपको पता न हो कि आप पुराने का उपयोग नहीं करते हैं, तब तक एक मौजूदा id_rsa कुंजी को न लिखें।
डेविड वनिल

5
इस उत्तर में पूरी तरह से जानकारी का अभाव है, आपको id_rsaफ़ाइल कैसे मिलती है (PuTTYgen में कुंजी को परिवर्तित करके)
मार्टिन प्रिक्रील

38

संयोग से, मुझे बस यही करना था। आपको कुंजी को ओपनएसएसएच प्रारूप में बदलने की आवश्यकता है। ऐसा करने की आज्ञा है:

ssh-keygen -i -f puttygen_key > openssh_key

तो आप की सामग्री की प्रतिलिपि कर सकते हैं openssh_keyकरने के लिए .ssh/authorized_keysसिर्फ एक सामान्य SSH कुंजी के साथ के रूप में।

-iविकल्प है कि बताता है ssh-keygenरूपांतरण करने के लिए। -fविकल्प यह बताता है जहां कुंजी परिवर्तित करने के लिए खोजने के लिए।

यह अनएन्क्रिप्टेड कुंजियों के लिए काम करता है । सार्वजनिक कुंजी अनएन्क्रिप्टेड है, लेकिन निजी शायद एन्क्रिप्टेड है। मुझे यकीन नहीं है कि अगर यह निजी कुंजी को अनएन्क्रिप्ट करने का कोई तरीका है, तो इसे रूपांतरित करें, और फिर इसे फिर से क्रिप्ट करें। नई कुंजियों का उपयोग करना आसान हो सकता है क्योंकि अन्य उत्तर से पता चलता है (और मैं ssh-agentमौजूदा मुद्दे पर ऑर्थोगोनल का उपयोग करने की सलाह दूंगा )।


1
यह उत्तर मेरी समस्या को हल करता है। मुझे चाबी बदलनी थी। धन्यवाद
लेटिसिया

1
यह केवल सार्वजनिक कुंजी को परिवर्तित करके समस्या का कुछ भाग हल करता है। मैंने निजी कुंजी को बदलने के लिए @ user18617 के उत्तर का उपयोग किया।
ᴠɪɴᴄᴇɴᴛ


@ KeydouardLopez puttygen_keyआपकी सार्वजनिक कुंजी होनी चाहिए, न कि निजी कुंजी (* .ppk)।
एंडोलिथ

28

एंड्रयू स्टेसी ने समझाया कि कैसे लिनक्स पर ओपनएसएसएच प्रारूप की चाबियाँ परिवर्तित करें।

यदि आप विंडोज पर ऐसा ही करना चाहते हैं, तो इन चरणों का पालन करें:

  1. PuTTYGen प्रारंभ करें।
  2. "लोड" पर क्लिक करें।
  3. अपनी निजी कुंजी चुनें और पासफ़्रेज़ दर्ज करें।
  4. 'रूपांतरण' मेनू से, "ओपन ओपनएसएसएच कुंजी" चुनें।
  5. गंतव्य फ़ाइल नाम चुनें।

1
मैं सिर्फ यह कहना चाहता था कि यह मेरे लिए मेरे मैक ओएस एक्स पर काम करता था, भले ही मुझे पता हो कि यह एक उबंटू अनुभाग है। मैंने ऊपर वर्णित विंडोज में अपनी निजी कुंजी को परिवर्तित किया, फिर इसे मेरे मैक में ~ / .ssh / id_rsa में कॉपी किया। chmod id_rsa 600 मैक को इसके बारे में शिकायत करने से रोकने के लिए।
रिचर्ड

24

OpenSSH कुंजियों के रूप में उबंटू में अपनी पुट्टी कीज जोड़ी को फिर से कैसे इस्तेमाल करें:

apt-get install putty-tools #Install Putty tools in Linux
cd /my-putty-keys
puttygen mykey-sec.ppk ‐O private‐openssh ‐o my‐openssh‐key.sec
ssh-keygen -i -f mykey-pub.ppk > my-openssh-key.pub

चूँकि चरण 4 का उद्देश्य अपनी सार्वजनिक कुंजी को * ~ /। Ssh / प्राधिकृत_की * से जोड़ना है, इसलिए आप अपनी पुट्टी गुप्त कुंजी का उपयोग इस तरह कर सकते हैं जैसे कि 4 एक मध्यवर्ती चरण के रूप में करते हैं:

puttygen ‐L mykey-sec.ppk >> $HOME/.ssh/authorized_keys

1
चरण 4 के बारे में: यदि निजी कुंजी का नाम mykey-sec.ppk था, तो इस मामले में स्रोत फ़ाइल नाम आमतौर पर mykey-sec.pub होगा।
किंजल दीक्षित

2
सार्वजनिक कुंजी का नामकरण (संभवतः RFC 4716 प्रारूप में) mykey-pub.ppkबहुत भ्रामक है, क्योंकि .ppkफ़ाइल में एक पूरी तरह से अलग प्रारूप है और इसका उपयोग कुंजी जोड़े के लिए किया जाता है (केवल सार्वजनिक कुंजी नहीं)।
मार्टिन प्रिक्रील

पिछले puttygen लाइन डेबियन 9 पर पोटीन उपकरण स्थापित करने के बाद मेरे लिए पूरी तरह से काम किया। अन्य लाइनों और जवाब यहाँ में काम नहीं किया।
टिम

अजीब तरह से मुझे मिल रहा था puttygen: unknown output type `private‐openssh'और puttygen: cannot handle more than one input fileइसलिए मैंने स्रोत कोड से सटीक वर्णों की प्रतिलिपि बनाई और अपनी सार्वजनिक कुंजी को पूरी तरह से कुछ और नाम दिया
CPHPython

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

9

PuTTY / PuTTYgen कुंजी जोड़ी के अपने स्वामित्व प्रारूप का उपयोग करता है। यह लिनक्स पर काम नहीं करेगा, जहां चाबियों का ओपनएसएसएच प्रारूप मौजूद है।

  • PuTTYgen में, आप OpenSSH फ़ाइल द्वारा उपयोग किए गए प्रारूप में एक सार्वजनिक कुंजी को सीधे देख (और कॉपी + पेस्ट) कर सकते हैं authorized_keys

  • आप बटन का उपयोग कर सकते सार्वजनिक कुंजी को बचाने को बचाने के लिए सार्वजनिक क्षेत्र में महत्वपूर्ण .pubप्रारूप (RFC 4716)। लिनक्स पर फ़ाइल को आमतौर पर नाम दिया जाता है id_rsa.pub(या id_dsa.pub)। लेकिन आमतौर पर इसकी जरूरत नहीं है।

  • ओपनएसएसएच प्रारूप में निजी कुंजी को निर्यात करने के लिए रूपांतरण> निर्यात ओपनएसएसएच कुंजी का उपयोग करें । लिनक्स पर फ़ाइल को आमतौर पर नाम दिया जाता है (या ) और फ़ोल्डर में संग्रहीत किया जाता है ।id_rsaid_dsa.ssh

PuTTYgen, PuTTY कुंजी जनरेटर का उपयोग करके आधिकारिक देखें ।

रूपांतरण करने के लिए आप PuTTYgen के लिनक्स संस्करण का भी उपयोग कर सकते हैं। लिनक्स संस्करण कमांड-लाइन है, जो विंडोज संस्करण के विपरीत है।

puttygen mykey.ppk ‐O private‐openssh ‐o id_rsa

लिनक्स puttygenमैन पेज देखें ।


2

मुझे एक और स्पष्ट समाधान मिला।

puttygenएक कुंजी बनाने पर , फिर शीर्ष मेनू पर जाएं - रूपांतरण और निर्यात ओपनश कुंजी पर क्लिक करें

फ़ाइल सामग्री के साथ शुरू और समाप्त होगा

-----BEGIN RSA PRIVATE KEY----- 

-----END RSA PRIVATE KEY-----
  • रूट उपयोगकर्ता के लिए उस कुंजी फ़ाइल को या के /root/.ssh/रूप में कॉपी करेंid_rsaid_dsa

  • अन्य उपयोगकर्ता के लिए उस कुंजी फ़ाइल को या के /home/user/.ssh/रूप में कॉपी करेंid_rsaid_dsa

ध्यान दें :

  1. संपादित करने की आवश्यकता नहीं है authorized_keys
  2. मैं amazon linux का उपयोग कर रहा हूँ
  3. फ़ाइल अनुमति 0600

1

* * सावधान रहें और सुनिश्चित करें कि आपके पास बॉक्स तक कंसोल एक्सेस है क्योंकि यदि आप इसे सही नहीं करते हैं, तो आप कंसोल से इसे ठीक करने तक फिर से ssh नहीं कर पाएंगे।

आपके विचार से यह प्रक्रिया बहुत आसान है। सार्वजनिक / निजी कुंजी जोड़ी को लोड करें जिसे आपने पुट्टीजेन में फिर से बनाया है। पुट्टीजेन में, आपको स्क्रीन के बीच में एक विंडो दिखाई देगी जो कहती है: "ओपन एसएसएच अधिकृत_की फाइल में चिपकाने के लिए सार्वजनिक कुंजी:"।

बॉक्स की संपूर्ण सामग्री को हाइलाइट करें और इसे कॉपी करने के लिए कंट्रोल-सी दबाएं।

अपने लिनक्स बॉक्स में SSH और "/home/username/.ssh/authorized_key" फ़ाइल में पेस्ट करें। मैं नैनो का उपयोग करना पसंद करता हूं और इसे पेस्ट करने के लिए सिर्फ राइट क्लिक करता हूं। सुनिश्चित करें कि यह सब एक लाइन पर रहता है।

अपनी / etc / sshd_config फ़ाइल को आवश्यकतानुसार संशोधित करें और अपनी sshd सेवा को पुनरारंभ करें: "सेवा ssh पुनरारंभ"

यदि आपको एक नमूना sshd_config फ़ाइल की आवश्यकता है, तो मुझे बताएं और मैं अपना पोस्ट कर सकता हूं।

मैंने इसे Ubuntu 8.04, 10.04 और 12.04 LTS सर्वर पर किया है और यह काम करता है।


0

मुझे यकीन नहीं है कि यह धागा अभी भी सक्रिय है, लेकिन मैं विंडोज 10 वर्षगांठ संस्करण के साथ एक समान समस्या पर ठोकर खाई, जो अब उबंटू कर्नेल का समर्थन करता है। लिनक्स मशीन से कनेक्ट करने से पहले मैं पोटीन का उपयोग करता हूं। Linux format में id_rsa जनरेट करने के लिए, puttykeygen का उपयोग करें और अपनी पोटीन निजी कुंजी को लोड करें फिर रूपांतरण पर क्लिक करें और दूसरा विकल्प चुनें।

पुट्टी कीजेनेटर कन्वर्जेंस

नई जनरेट की गई फ़ाइल को खोलें और उसकी सभी सामग्री की प्रतिलिपि बनाएँ, सुनिश्चित करें कि आपकी सामग्री इससे शुरू होती है: ----- BEGIN RSA निजी कुंजी ----- और अंत के साथ ----- END RSA निजी कुंजी -----

vi id_rsa आपके ~ / .shsh निर्देशिका के अंदर और कॉपी की गई सामग्री को चिपकाएँ, यह आवश्यक है क्योंकि लिनक्स अन्यथा फ़ाइल की सामग्री को नहीं समझेगा।

यह सब है, दूरस्थ सर्वर पर ssh प्रयास करें, यह काम करना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.