एक साथ gpg और SSH का उपयोग कैसे करें? [डुप्लिकेट]


11

संभव डुप्लिकेट:
क्या GPG और SSH कुंजियाँ विनिमेय हैं?

एक साथ gpg और SSH का उपयोग कैसे करें?

मुझे पता है कि 1) बुनियादी प्रक्रियाओं का उपयोग करके gpg को एन्क्रिप्ट करने और पाठ फ़ाइलों को डिक्रिप्ट करने के लिए और 2) जनरेट करने और पासवर्ड के माध्यम से दूरस्थ सर्वर तक पहुंचने के लिए SSH कुंजियों का उपयोग करना।

मुझे आश्चर्य है कि अगर दोनों को एकीकृत किया जा सकता है। क्या दोनों असंबंधित हैं और उनके दिन-प्रतिदिन के उपयोग में अलग होना चाहिए?

जवाबों:


7

मैं इस विषय के बारे में कुछ शोध कर रहा हूं और मैं आपको कुछ संकेत दे सकता हूं, लेकिन मुझे इसे अभी तक काम करने का कोई तरीका नहीं मिला है।

Monkeysphere

मंकीस्फेयर एक बहुत ही दिलचस्प परियोजना लगती है, लेकिन मैं मैक ओएस एक्स के तहत मैकपार्ट्स के साथ मेरी थोड़ी सी फ्री डिस्क स्पेस को बंद किए बिना इसे संकलित करने में सक्षम नहीं हूं।

Gpgkey2ssh का उपयोग करना

पहला तरीका जो मैं आपको सुझाता हूं, वह यह है कि आपकी कुंजी आईडी (जैसे, 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 का उपयोग करना

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 कुंजी की सुरक्षा के लिए एक अतिरिक्त उपाय के रूप में उपयोग किया जाना चाहिए।

OpenSSH के लिए एक GPG कुंजी परिवर्तित करना

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 के पास -IPKCS # 11 साझा लाइब्रेरी को निर्दिष्ट करने के लिए एक विकल्प sshहोना चाहिए जो PKCS # 11 टोकन के साथ संचार करने के लिए उपयोगकर्ता की निजी RSP कुंजी प्रदान करता है। ssh-keygenRSS4716 / SSH2 सार्वजनिक या निजी कुंजी, PEM PKCS8 सार्वजनिक कुंजी, और PEM सार्वजनिक कुंजियों का उपयोग OpenSSH संगत निजी (या सार्वजनिक) कुंजी का उपयोग करने के लिए -iऔर -mविकल्पों का उपयोग कर सकता है ।

फिर भी मुझे इसे एक साथ रखने का कोई तरीका नहीं मिल रहा है।


1
भविष्य के संदर्भ के लिए, यदि आपको दो प्रश्न मिलते हैं जो अनिवार्य रूप से समान हैं, तो आप उन्हें flagएक ही उत्तर को दो बार पोस्ट करने के बजाय डुप्लिकेट ( प्रश्न के तहत लिंक का उपयोग करके) के रूप में चिह्नित कर सकते हैं । हालांकि विस्तृत प्रतिक्रिया के लिए धन्यवाद!
nhinkle

क्षमा करें, मुझे इस सुविधा के बारे में जानकारी नहीं है। धन्यवाद
क्लाउडियो फ्लोरनी

2
मुझे यकीन नहीं है कि आप क्या पूरा करने की कोशिश कर रहे हैं gpg --armor --export-secret-key BFB2E5E3! |tee ~/.ssh/id_rsa। क्या आप teeअभी उपयोग कर रहे हैं ताकि आप आउटपुट देख सकें? इस कमांड का आउटपुट उपयोग के लिए उपयुक्त नहीं है ssh-add; उत्पन्न id_rsaफ़ाइल या तो में लोड नहीं किया जा सकता ssh-agentया gpg-agent, और न ही यह सीधे द्वारा इस्तेमाल किया जा सकता ssh
लार्क्स


2

तकनीकी रूप से हाँ, PGP कुंजियों का उपयोग SSH प्रमाणीकरण के लिए किया जा सकता है। जिसे लोग "PGP कुंजी" कहते हैं, वह प्रमाणपत्र का अधिक होता है , जिसमें प्रमाण पत्र के मेटाडेटा के साथ साधारण RSA, ECDSA या अन्य कीपेयर (प्राथमिक कुंजी और उपकुंजियां) शामिल होती हैं। वास्तव में, वहाँ भी एक "प्रमाणीकरण" उपयोग झंडा परिभाषित किया गया है।

यह कई उद्देश्यों के लिए एक ही कुंजी का उपयोग करने के लिए अनुशंसित नहीं है, हालांकि; हालाँकि, यह आसानी से हल हो जाता है क्योंकि आप आसानी से अपने PGP सर्टिफ़िकेट (थ्रू gpg --expert --edit-key) में एक प्रमाणीकरण-केवल उपकुंजी जोड़ सकते हैं । आपके पास एक हस्ताक्षरित / प्रमाणीकरण प्राथमिक कुंजी, एक एन्क्रिप्शन उपकुंजी और एक प्रमाणीकरण उपकुंजी होगी।

हालांकि व्यवहार में, मुझे यह पता नहीं चल पाया है कि सीधे पीजीपी कुंजी का उपयोग करके कैसे प्रमाणित किया जाए, हालांकि मैं कई विचारों को आज़माने के लिए बहुत आलसी रहा हूं। मंकीस्फेयर सूट में ssh- एजेंट के लिए अपने GPG प्रमाणीकरण उपकुंजियों को जोड़ने का एक उपकरण है, सरल होना चाहिए। लेकिन इस पर कुछ पुराने Super User पोस्ट होने चाहिए।


जानकारी के लिए धन्यवाद। वे उपयोगी हैं लेकिन मेरे प्रश्न का उत्तर देने के लिए पर्याप्त नहीं हैं। मुझे अभी भी नहीं पता है कि मेरे पीजीपी प्रमाणपत्र और एसएसएच कुंजी को कैसे एकीकृत किया जाए।
क़ज़वेक्स

मंकीस्फेयर डॉक्स से; monkeysphere subkey-to-ssh-agentएजेंट में अपनी कुंजी लोड करने के लिए।
user1686
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.