Ssh- एजेंट और Keychain (Linux) द्वारा उपयोग किए जाने वाले कुंजी-जोड़े में PuTTYgen (विंडोज) का उपयोग करके उत्पन्न SSH कीपियों को कैसे बदलें


464

मैंने PuTTYgen का उपयोग करके महत्वपूर्ण जोड़े उत्पन्न किए हैं और पेजेंट का उपयोग करने में लॉग इन कर रहा हूं, ताकि मुझे अपना पास-वाक्यांश केवल एक बार दर्ज करना पड़े जब मेरा सिस्टम बूट हो।

मैं इसे लिनक्स में कैसे प्राप्त करूं? मैंने सुना है, keychainलेकिन मैंने सुना है कि यह एक अलग कुंजी जोड़ी प्रारूप का उपयोग करता है - मैं अपनी विंडोज कुंजियों को बदलना नहीं चाहता हूं और यह अच्छा होगा यदि मैं विंडोज और लिनक्स दोनों में एक ही तरीके से कनेक्ट कर सकता हूं।


लाइनक्स में कुंजियों का उपयोग करने में कोई समस्या नहीं होनी चाहिए ... बस उन्हें कॉपी करें और पब को अधिकृत कुंजियों में जोड़ें ... हालांकि माना जाता है कि मैं पूरी तरह से आपके प्रश्न को नहीं समझता हूं।
रान्डेल हंट

17
नहीं, वहाँ है - मुझे यह बहुत पता है कि पुट्टीगैन और ssh- एजेंट द्वारा उपयोग किए जाने वाले मुख्य प्रारूप अलग हैं, और उन्हें स्पष्ट रूप से परिवर्तित किया जाना है - नीचे कालेब का विस्तृत जवाब देखें।
TCSGrad

जवाबों:


714

puttygenएक ओपनएसएसएच संगत प्रारूप में अपनी निजी कुंजी का निर्यात करने का समर्थन करता है। फिर आप सार्वजनिक कुंजी को पुनः बनाने के लिए OpenSSH टूल का उपयोग कर सकते हैं।

  1. पुट्टीजेन खोलें
  2. लोड पर क्लिक करें
  3. अपनी निजी कुंजी लोड करें
  4. जाओ Conversions->Export OpenSSHऔर अपनी निजी कुंजी निर्यात करें
  5. ~/.ssh/id_dsa(या id_rsa) के लिए अपनी निजी कुंजी कॉपी करें ।
  6. सार्वजनिक कुंजी का उपयोग करके RFC 4716 संस्करण बनाएँ ssh-keygen

    ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
    
  7. सार्वजनिक कुंजी के RFC 4716 संस्करण को OpenSSH प्रारूप में बदलें:

    ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
    

देखें इस और इस बारे में अधिक जानकारी के लिए।


12
उन लोगों के लिए It is required that your private key files are NOT accessible by othersजैसे मुझे त्रुटि मिली थी cd ~/.sshऔरchmod 700 id_rsa
विशेषज्ञ

77
आपका मतलब है chmod 600 id_rsa । फ़ाइल को निष्पादन योग्य होने की आवश्यकता नहीं है। :)
sig11

2
यह उत्तर मेरे लिए पासवर्डलेस कुंजी का उपयोग करके विंडोज़ कमांड लाइन से ssh प्राप्त करने की कुंजी थी (विशेषकर गिट एक्सेस के लिए)। अगर मुझे पहले देखा होता तो मुझे घंटों दर्द से बचा लेता! धन्यवाद!
cori

2
क्या पोटीन को सीएलआई से निष्पादित किया जा सकता है?
CMCDragonkai

20
मुझे लगता है कि यह कुछ नया है, लेकिन यदि आप अपनी निजी कुंजी को पोटीन में खोलते हैं, तो यह स्वचालित रूप से आपको यूआई में एक ओपनएसएसएच संगत, कॉपी करने योग्य, सार्वजनिक कुंजी स्ट्रिंग दिखाएगा।
उपराष्ट्रपति

161

यदि आपके पास PuTTY- शैली प्रारूप में किसी उपयोगकर्ता की सार्वजनिक कुंजी है, तो आप इसे मानक ओपनशॉट प्रारूप में बदल सकते हैं जैसे:

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

संदर्भ

लेख की प्रति

मैं इसे भूलता रहता हूँ इसलिए मैं यहाँ इसे लिखने जा रहा हूँ। गैर गीक्स, बस चलते रहो।

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

समाधान: जब आप पोटीन में अपनी प्रमुख जोड़ी बनाने के लिए सार्वजनिक कुंजी स्क्रीन पर आते हैं, तो सार्वजनिक कुंजी को कॉपी करें और इसे एक्सटेंशन .pub के साथ पाठ फ़ाइल में पेस्ट करें। आप इस तरह की हताशा पढ़ने की पोस्ट के sysadmin घंटे बचा लेंगे।

फिर भी, sysadmins, आप हमेशा के लिए winky कुंजी फ़ाइल प्राप्त करते हैं जो कि ऑर्टिकल लॉग में कोई त्रुटि संदेश नहीं छोड़ता है, कोई कुंजी नहीं मिली, पासवर्ड की कोशिश कर रहा है; भले ही हर किसी की कुंजी ठीक काम कर रही हो, और आपने इस कुंजी को उपयोगकर्ता को 15 बार वापस भेजा है।

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

एक मौजूदा puttygen सार्वजनिक कुंजी को OpenSSH प्रारूप में परिवर्तित करना चाहिए।


2
इसके अलावा, आप उपयोगकर्ता की टिप्पणी को Comment:लाइन से कॉपी कर सकते हैं और उसे उसी पंक्ति में चिपका सकते हैं, जिस स्थान पर नई कुंजी को अलग किया गया है। मुझे नहीं पता कि ssh-keygen डिफ़ॉल्ट रूप से ऐसा क्यों नहीं करेगा।
टोबिया

2
यह मुझे एक त्रुटि देता है:decode blob failed: invalid format
क्रिस स्ट्राइकिनस्की

यदि आप मूल लेख को पढ़ते हैं, तो मुख्य विवरण यह है कि यह दृष्टिकोण केवल तभी काम करता है जब आप यूटीआई से गुजरते समय पुट्टीजेन से कुंजी की नकल करते हैं, यह पुट्टीजेन द्वारा निर्मित फाइलों से पहले से ही उत्पन्न कुंजी को परिवर्तित नहीं करेगा।
SLM

क्या मैं इसे उसी तरह से बदलने के लिए उसी टूल का उपयोग कर सकता हूं?
ओलले हर्स्टेडट

हां, ऐसा लग रहा है जैसे आप देख रहे हैं: ssh-keygen -e -f opensh_key.pub> putty.pub
Erik

148

PuTTYgen के नए संस्करण (मेरा 0.64 है) ओपनएसएसएच सार्वजनिक कुंजी को .ssh/authorized_keysफाइल में लिनक्स सिस्टम में चिपकाया जा सकता है , जैसा कि निम्नलिखित छवि में दिखाया गया है:

यहाँ छवि विवरण दर्ज करें


7
यह उत्तर बताता है कि OpenSSH प्रारूप का उपयोग करने वाले रिमोट पर कुंजी प्रमाणीकरण कैसे सेट किया जाए। लेकिन लिनक्स क्लाइंट पर पुट्टी-जनरेट की गई कुंजी का उपयोग करने के लिए , यह उत्तर अपर्याप्त है। मैंने स्वीकृत उत्तर का पालन किया और इसने शानदार ढंग से काम किया।
21

52

वैकल्पिक रूप से, यदि आप एक PuTTY स्वरूपित कुंजी फ़ाइल से निजी और सार्वजनिक कुंजी हड़पना चाहते हैं, तो आप puttygen* nix सिस्टम पर उपयोग कर सकते हैं । अधिकांश उपयुक्त-आधारित प्रणालियों puttygenका हिस्सा हैputty-tools पैकेज ।

एक PuTTY तैयार कीफ़ाइल से एक निजी कुंजी आउटपुट:

$ puttygen keyfile.pem -O private-openssh -o avdev.pvk

सार्वजनिक कुंजी के लिए:

$ puttygen keyfile.pem -L


यदि किसी कारण से आप इसे विंडोज बॉक्स पर करना चाहते हैं (सुरक्षित रूप से सभी कुंजियों को एक * निक्स में स्थानांतरित नहीं कर सकते हैं) और जीयूआई का उपयोग करने के लिए इतनी सारी चाबियां बोझिल हैं, तो सिग्विन के तहत यूनिक्स स्रोत को संकलित करने का प्रयास करें। वह puttygen.exe आपको सीएलआई "बैच मोड" देगा जैसा ऊपर वर्णित है।
टोड्डियस ज़ो

2
OSX:brew install putty
जूहा पालोम्की

1
यह उलटा होना चाहिए: puttygen inppk -O private-openssh -o outpemऔर puttygen inppk -L(या ssh-keygen -y -f outpem)
dave_thompson_085

27
sudo apt-get install putty

यह अपने आप पुट्टीजेन टूल इंस्टॉल करेगा।

अब टर्मिनल में निम्नलिखित के साथ SSH कमांड के साथ प्रयोग की जाने वाली PPK फाइल को कन्वर्ट करने के लिए

puttygen mykey.ppk -O private-openssh -o my-openssh-key

फिर, आप SSH के माध्यम से कनेक्ट कर सकते हैं:

ssh -v user@example.com -i my-openssh-key

http://www.graphicmist.in/use-your-putty-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603


यह वास्तव में, की तुलना में अधिक दिखाई नहीं देता क्या में पहले से ही है @ जॉन जावेद से जवाब
मार्टिन Prikryl

तर्क बताते हैं कि वे क्या प्रतिनिधित्व करते हैं। +1
डैरोनमून

महान! यह काम। इसके अलावा, मैकोस पर पोटीन स्थापित करने के लिए: शराब की भठ्ठी पोटीन
डायलन बी

14

मुझे हाल ही में यह समस्या हुई थी क्योंकि मैं लिनक्स के लिए पुट्टी से लिनक्स के लिए रेमीना की ओर बढ़ रहा था। इसलिए मेरे पास मेरी .puttyनिर्देशिका में पुट्टी के लिए बहुत सारी पीपीके फाइलें हैं जैसा कि मैं 8 वर्षों से उपयोग कर रहा हूं। इसके लिए मैंने forसभी फ़ाइलों को करने के लिए bash शेल के लिए एक साधारण कमांड का उपयोग किया :

cd ~/.putty
for X in *.ppk; do puttygen $X -L > ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pub; puttygen $X -O private-openssh -o ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pvk; done;

बहुत जल्दी और इस बिंदु पर, उन सभी फाइलों के लिए काम किया गया जो पोटीन के पास थीं। यदि यह पासवर्ड के साथ एक कुंजी पाता है तो यह रुक जाएगा और पहले उस कुंजी के लिए पासवर्ड मांगेगा और फिर जारी रखेगा।


2
मेरे जैसे आलसी ppl के लिए, यहाँ ubuntu पर puttygen पाने के लिए कॉपी-पेस्ट है: sudo apt-get install putty-tools
Lennart Rolland

"सरल" - मुझे जटिल देखने से नफरत होगी!
एलेक्स जैनसेन

8

संभवतः लिनक्स के नीचे अपनी चाबियाँ बनाना और पुटी प्रारूप में कुंजियों को परिवर्तित करने के लिए PuTTYgen का उपयोग करना आसान है।

पुष्य दोष: अ .2.2


14
दुर्भाग्य से यह एक विकल्प नहीं है यदि आपके पास मौजूदा कुंजियाँ हैं जिनका आपको उपयोग करना है।
विशेषज्ञ

6

मुझे लगता है कि (कुछ साल पहले) TCSgrad क्या पूछना चाह रहा था कि कैसे लिनक्स को अपने विंडोज मशीन की तरह व्यवहार करना है। यही है, एक एजेंट (पेजेंट) है जो एक निजी कुंजी की डिक्रिप्टेड कॉपी रखता है ताकि पासफ़्रेज़ को केवल एक बार में डाल दिया जाए। फिर, ssh क्लाइंट, पोटीन, उन मशीनों में लॉग इन कर सकता है, जहाँ उसकी सार्वजनिक कुंजी पासवर्ड प्रॉम्प्ट के बिना "अधिकृत" के रूप में सूचीबद्ध है।

इसके लिए एनालॉग यह है कि लिनक्स, एक ssh क्लाइंट के रूप में कार्य करता है , के पास एक डिक्रिप्टेड निजी कुंजी को रखने वाला एक एजेंट होता है ताकि जब TCSgrad प्रकार का ssh होस्ट "ssh कमांड को अपनी निजी कुंजी प्राप्त हो जाए और पासवर्ड के लिए संकेत दिए बिना चला जाए। बेशक, सार्वजनिक कुंजी को ~ / .ssh / अधिकृत_की में रखना होगा।

इस परिदृश्य के लिए लिनक्स एनालॉग ssh- एजेंट (पेजेंट एनालॉग) और ssh-add (पेजेंट में एक निजी कुंजी जोड़ने का एनालॉग) का उपयोग करके पूरा किया जाता है।

मेरे लिए काम करने वाली विधि का उपयोग करना था: $ ssh-Agent $ SHELL वह $ SHELL वह जादू की चाल थी जिसे मुझे चलाने और रहने के लिए एजेंट को चलाने की आवश्यकता थी। मैंने पाया कि 'नेट' पर कहीं और यह दीवार के खिलाफ मेरे सिर को पीटने के कुछ घंटे खत्म हो गया।

अब हमारे पास पेजेंट का चलन है, एक एजेंट जिसके पास कोई कुंजी नहीं है।

$ Ssh-add को अपने आप से टाइप करके (डिफ़ॉल्ट रूप से) ~ sssh में डिफ़ॉल्ट पहचान फ़ाइलों में सूचीबद्ध निजी कुंजियाँ जोड़ देगा।

बहुत अधिक विवरण के साथ एक वेब लेख यहां पाया जा सकता है


0

PPK → पुट्टीजेन और डोकर के साथ ओपनएसएसएच आरएसए।

निजी चाबी:

docker run --rm -v $(pwd):/app zinuzoid/puttygen private.ppk -O private-openssh -o my-openssh-key

सार्वजनिक कुंजी:

docker run --rm -v $(pwd):/app zinuzoid/puttygen private.ppk -L -o my-openssh-key.pub

Https://hub.docker.com/r/zinuzoid/puttygen भी देखें

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