जवाबों:
मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन मेरे जैसे लोगों के लिए इस पर ठोकर खाना:
अब यह (gpg 2.1 के बाद से) संभव है कि सीधे ssh कुंजियों को सीधे gpg का उपयोग करके निकाला जाए
gpg --export-ssh-key <key id>!
:।
!
मार्क वैकल्पिक है, यह प्राथमिक कुंजी निर्यात करने योग्य बनाता है और जाँच को छोड़ देता है कि क्या कुंजी प्रमाणीकरण सक्षम ([सीए]) है।
विवरण:
मैं इस विषय के बारे में कुछ शोध कर रहा हूं और मैं आपको कुछ संकेत दे सकता हूं, लेकिन मुझे इसे अभी तक काम करने का कोई तरीका नहीं मिला है।
मंकीस्फेयर एक बहुत ही दिलचस्प परियोजना लगती है, लेकिन मैं मैक ओएस एक्स के तहत मैकपार्ट्स के साथ मेरी थोड़ी फ्री डिस्क स्पेस को बंद किए बिना इसे संकलित करने में सक्षम नहीं हूं।
पहला तरीका जो मैं आपको सुझाता हूं, वह है आपकी कुंजी आईडी (जैसे BFB2E5E3) से संगत अधिकृत_की प्रविष्टि उत्पन्न करना
gpgkey2ssh BFB2E5E3 | tee -a ~/.ssh/authorized_keys
यहाँ मैंने इसे अपने लोकलहोस्ट में जोड़ा क्योंकि मैंने परीक्षण उद्देश्यों के लिए एक ssh सर्वर चलाया था, लेकिन निश्चित रूप से आपको इसे लक्ष्य होस्ट में जोड़ना चाहिए ~/.ssh/authorized_keys
। इसके बाद आपको प्रमाणीकरण के दौरान SSH को इस कुंजी के निजी हिस्से का उपयोग करने के लिए बताने की आवश्यकता है, लेकिन केवल कीपर के ASCII बख़्तरबंद संस्करण का निर्यात करने से काम नहीं होता है:
gpg --armor --export-secret-key BFB2E5E3! |tee ~/.ssh/id_rsa
gpg --armor --export BFB2E5E3! | tee ~/.ssh/id_rsa.pub
chmod 400 ~/.ssh/id_rsa
ssh localhost
gpg-agent
विकल्प --enable-ssh-support
है जो इसे अच्छी तरह से ज्ञात के लिए ड्रॉप-इन प्रतिस्थापन के रूप में उपयोग करने की अनुमति देता है ssh-agent
। मैंने कुछ लोगों को इस तरह ssh-add
लॉन्च करने के बाद अपनी GPG कुंजी के माध्यम से जोड़ने की कोशिश के बारे में पढ़ा है gpg-agent
:
gpg-agent --enable-ssh-support --daemon
gpg --armor --export-secret-key BFB2E5E3! | tee ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
ssh-add ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
लेकिन मुझे नहीं लगता कि यह कभी काम करेगा। GPG-एजेंट मैनपेज का कहना है:
SSH कीज़, जिन्हें एजेंट के माध्यम से उपयोग किया जाना है, को शुरू में ssh-add उपयोगिता के माध्यम से gpg- एजेंट में जोड़ा जाना चाहिए। जब कोई कुंजी जोड़ी जाती है, तो ssh-add प्रदान की गई फ़ाइल का पासवर्ड पूछेगा और एजेंट को असुरक्षित कुंजी सामग्री भेजेगा; यह gpg- एजेंट को एक पासफ़्रेज़ के लिए पूछने का कारण बनता है, जिसका उपयोग नई प्राप्त कुंजी को एन्क्रिप्ट करने और इसे gpg- एजेंट विशिष्ट निर्देशिका में संग्रहीत करने के लिए किया जाता है।
तो ऐसा लगता है कि gpg-agent
एक GPG एन्क्रिप्शन के साथ अपने SSH कुंजी की सुरक्षा के लिए एक अतिरिक्त उपाय के रूप में उपयोग किया जाना चाहिए।
Jérôme Pouiller अपने ब्लॉग में लिखते हैं कि Gpgsm उपयोगिता PCSC12 में कुंजी और प्रमाणपत्र निर्यात कर सकती है; वे तो OpenSSH द्वारा उपयोग किया जा सकता है:
gpgsm -o secret-gpg-key.p12 --export-secret-key-p12 0xXXXXXXXX
openssl pkcs12 -in secret-gpg-key.p12 -nocerts -out gpg-key.pem
chmod 600 gpg-key.pem
cp gpg-key.pem ~/.ssh/id_rsa
ssh-keygen -y -f gpg-key.pem > ~/.ssh/id_rsa.pub
लेकिन मुझे gpgsm
अपना gpg कीपर्स स्वीकार करने का कोई तरीका नहीं मिला ।
SSH के पास -I
PKCS # 11 साझा लाइब्रेरी को निर्दिष्ट करने के लिए एक विकल्प ssh
होना चाहिए जो PKCS # 11 टोकन के साथ संचार करने के लिए उपयोगकर्ता की निजी RSP कुंजी प्रदान करता है।
ssh-keygen
RSS4716 / SSH2 सार्वजनिक या निजी कुंजी, PEM PKCS8 सार्वजनिक कुंजी, और PEM सार्वजनिक कुंजियों का उपयोग OpenSSH संगत निजी (या सार्वजनिक) कुंजी -i
और -m
विकल्पों का उपयोग करने के लिए कर सकते हैं।
फिर भी मुझे इसे एक साथ रखने का कोई तरीका नहीं मिल रहा है।
gpgkey2ssh
में बदल दिया गया है --export-ssh-key
। इसे महसूस करने में मुझे थोड़ा समय लगा। उपयोग है gpg --export-ssh-key BFB2E5E3
।
नहीं, वे विनिमेय नहीं हैं। हां, प्रमाणीकरण के लिए GPG कुंजी का उपयोग करना संभव है - बंदरों के पैकेज में आपके GPG प्रमाणपत्र से कच्चे RSA कीपेयर निकालने के उपकरण हैं।
आपके GPG प्रमाणपत्र को "प्रमाणीकरण" क्षमता ध्वज के साथ एक उपकुंजी की आवश्यकता होगी। ऐसा उपकुंजी बनाने के लिए, एक बार चलाएं:
monkeysphere g
अब अपने प्रमाणीकरण उपकुंजियों को ssh- Agent में जोड़ें :
monkeysphere s
कुछ हद तक प्रासंगिक: यह gnupg- उपयोगकर्ता धागा ।
इस सवाल के जवाब से जानकारी और gnupg-users मेलिंगलिस्ट की मदद से मैं यह पता लगाने में सक्षम था कि SSH प्रमाणीकरण के लिए अपनी GPG कुंजी का उपयोग कैसे करें। जैसा कि पहले से ही क्लाउडियो फ्लोरिनी ने अपने जवाब में उल्लेख किया है, ऐसा करने के लिए कुछ संभावित तरीके हैं।
मैंने कुछ संभावित समाधानों के बारे में एक ब्लॉगपोस्ट लिखा है: http://budts.be/weblog/2012/08/ssh-authentication-with-your-pgp-key
संक्षेप में: या तो आप GnuPG 2.1 का उपयोग करें, जो वर्तमान में बीटा में है। इस संस्करण का उपयोग करते समय, आप बस gpg-एजेंट को --enable-ssh-support विकल्प के साथ शुरू कर सकते हैं और आपके लिए keygrip को GPG कुंजी (या उपकुंजी) में जोड़ सकते हैं ~ / .gnupg / sshcontrol।
जब आप वर्तमान स्थिर GnuPG संस्करण (2.0.x) का उपयोग कर रहे हैं, तो आप gpg- एजेंट में अपनी कुंजी जोड़ने के लिए बंदरों का उपयोग कर सकते हैं (फिर से, - gen-Agent को --enable-ssh-support विकल्प के साथ शुरू करने के बाद)।
बंदरों की सहायता से GNOME कीरिंग (या नियमित ssh- एजेंट) का उपयोग करना भी संभव है। इस मामले में एकमात्र समस्या यह है कि आपको फिर से लॉग इन करते समय अपनी कुंजी को जोड़ना होगा (Gnome या XFCE में)। इसे हल करने के लिए आप मैन्युअल रूप से अपनी कुंजी निर्यात कर सकते हैं और इसे परिवर्तित कर सकते हैं।