लिनक्स के तहत OpenSSH कुंजी के लिए .ppk कुंजी कैसे परिवर्तित करें?


188

मुझे पता है कि विंडोज में पोटीनजेन के तहत .ppk को बदलना संभव है, लेकिन लिनक्स पर ऐसा कैसे करें? क्या यह संभव है ?

जवाबों:


275

इसे पुट्टी के साथ करें।

  • लिनक्स: अपने पैकेज मैनेजर के साथ, PuTTY (या अधिक न्यूनतम PuTTY- उपकरण) स्थापित करें:

    • उबंटू sudo apt-get install putty-tools
    • डेबियन की तरह apt-get install putty-tools
    • आरपीएम आधारित yum install putty
    • Gentoo emerge putty
    • Archlinux sudo pacman -S putty
    • आदि।
  • OS X: होमब्रे स्थापित करें , फिर चलाएंbrew install putty

अपनी चाबियाँ कुछ निर्देशिका में रखें, जैसे कि आपका होम फ़ोल्डर। अब PPK कुंजियों को SSH कीपियों में बदलें: कैश सर्च

निजी कुंजी उत्पन्न करने के लिए :

cd ~
puttygen id_dsa.ppk -O private-openssh -o id_dsa

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

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub

इन कुंजियों को स्थानांतरित करें ~/.sshऔर सुनिश्चित करें कि आपकी निजी कुंजी के लिए अनुमतियाँ निजी पर सेट हैं:

mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub

यदि आपने पहले ही एक ' गिट क्लोन ' ऑपरेशन करने की कोशिश की है, तो आपको यह भी करने की आवश्यकता हो सकती है

chmod 666 ~/.ssh/known_hosts

नमस्ते, मेरे पास पहले से ही एक .pub है तो उसे फिर से सार्वजनिक कुंजी बनाने की आवश्यकता है
अमित बेरा

1
यदि आप यहां यह देखने के लिए आए कि यह विंडोज़ में कैसे किया जाए, तो "puttygen yourkey.ppk" चलाएं, और फिर रूपांतरण मेनू के तहत निजी कुंजी प्राप्त करने के लिए "निर्यात ओपनएसएसएच कुंजी" चुनें।
रयान

1
समाधान @jous से बहुत अच्छा है क्योंकि आपको सार्वजनिक कुंजी को बदलने के लिए निजी कुंजी की आवश्यकता नहीं है + आपको पोटीन स्थापित करने की आवश्यकता नहीं है
टोबि

मुझे अपनी ./ssh/configफाइल में इस कुंजी को जोड़ना थाHost mysite.com Hostname mysite.com IdentityFile ~/.ssh/id_dsa IdentitiesOnly yes
vladkras

कुछ अण्डाकार वक्र प्रारूप (ECDS आदि) केवल बीटा पोटीन उपकरण में उपलब्ध हैं।
डैनियल डब्ल्यू।

39
ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i फ्लैगशिप को ओपनश प्रारूप के अलावा अन्य से आयात किया जाता है
  • -f झंडा का मतलब इनपुट फ़ाइल से पढ़ा जाता है

स्रोत: burnz.wordpress.com पर एक ब्लॉगपोस्ट


17
.ppk फाइलें पूर्ण कुंजी जोड़े हैं, मुझे नहीं लगता कि ऊपर दिया गया आदेश या ब्लॉग पोस्ट उस पर लागू होता है।
पीटर बेकर

2
मुझे लगता है कि मेरा मतलब है कि यह काम करता है यदि आप पोटीनजेन के "सार्वजनिक कुंजी को सहेजें" बटन का उपयोग करते हैं। ssh-keygen को सही .ppk फाइलें समझ में नहीं आती हैं क्योंकि उनके पास उन '---- BEGIN SSH2 सार्वजनिक कुंजी ----' मार्करों का अभाव होता है। आप "पब्लिक-लाइन्स: .." और "प्राइवेट-लाइन्स: .." लाइनों के बीच में .ppk फाइल की सार्वजनिक कुंजी पा सकते हैं।
jous

1
यह मेरे लिए एक सार्वजनिक-कुंजी फ़ाइल के साथ काम करता है - पुट्टीजेन को एक निजी कुंजी की आवश्यकता होती है। ऐसा लगता है कि यह सब किया था आधार 64 भाग को एक ही पंक्ति में पुनर्व्यवस्थित किया
जैसन

2
यह निजी कुंजी को कवर करने के लिए प्रतीत नहीं होता है, यही वजह है कि मैं रूपांतरण करना चाहता हूं, मेरे पास पहले से ही एक सार्वजनिक कुंजी कहीं न कहीं
बची हुई

हाँ, मैंने जो ppk फाइलें देखी हैं उनमें उपयुक्त मार्कर थे, और यह ठीक काम किया है
21

5

निजी कुंजी प्राप्त करें:

puttygen में .ppk फ़ाइल खोलें:

puttygen ~/.ssh/id_dsa.ppk

खुलता है के रूप में निर्यात:

रूपांतरण → निर्यात ओपनएसएसएच कुंजी

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

puttygen के साथ निजी कुंजी से पहले की तरह खुला , सार्वजनिक कुंजी OpenSSH अधिकृत_की फ़ाइल में चिपकाने के लिए सार्वजनिक कुंजी के तहत है


4

मैंने जीवन को सरल बनाने के लिए डॉकटर कंटेनर तैयार किया:

docker run --rm \
           --volume=/path/to/file.ppk:/tmp/id_dsa.ppk \
           --volume=/path/to/output:/tmp/out/ \
           czerasz/putty-tools

कहाँ पे:

  • /path/to/file.ppk - अपने ppk फ़ाइल के लिए स्थानीय पथ
  • /path/to/output - स्थानीय पथ जहां निजी और सार्वजनिक कुंजी रखी जानी चाहिए

1
महान। छवि के लिए thx! हालांकि इस बीच --volume=/path/to/file.ppk:/tmp/id.ppkऔर नहींid_dsa.ppk
पीएचआईएल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.