2010-06-04 20 views
9

ssh-add -l प्रदर्शित करता है कि मेरे पास अपने एसएसएच एजेंट में 3 आरएसए कुंजी जोड़े गए हैं। ssh-add -L सार्वजनिक कुंजी प्रदर्शित करता है। मैं निजी कुंजी भी कैसे प्राप्त करूं, ताकि मैं उन्हें एक फ़ाइल में सहेज सकूं? या यह डिजाइन द्वारा है कि यह असंभव है, यानी एसएस-एजेंट को निजी कुंजी का उपयोग करके संचालन करने के लिए कहा जा सकता है, लेकिन यह कभी भी कुंजी को वापस नहीं करेगा? यदि ऐसा है, तो मैं इसे मेरे लिए एक संख्या एन्क्रिप्ट/डिक्रिप्ट करने के लिए कैसे कह सकता हूं?एसएसएच एजेंट से निजी कुंजी कैसे निकालें?

यह ठीक है कि मुझे इसके लिए कोड लिखना है (प्रोग्रामिंग भाषा कोई फर्क नहीं पड़ता), लेकिन मैं मौजूदा उपकरण या लाइब्रेरी का उपयोग करना पसंद करूंगा।

उत्तर

5

मुझे एसएसएस-एजेंट कैसे काम करता है: http://www.unixwiz.net/techtips/ssh-agent-forwarding.html के बारे में मुझे बहुत अच्छी जानकारी मिली है। यह आंशिक रूप से मेरे कुछ सवालों का जवाब देता है।

  • एजेंट की अधिक चतुर पहलू यह है कि यह कैसे किसी को है कि निजी कुंजी का खुलासा किए बिना एक उपयोगकर्ता की पहचान (या अधिक सटीक, एक निजी कुंजी के कब्जे) की पुष्टि कर सकते है।

  • एजेंट अग्रेषण के सुरक्षा लाभों में से एक यह है कि उपयोगकर्ता की निजी कुंजी कभी भी एन्क्रिप्टेड रूप में रिमोट सिस्टम या तार पर दिखाई नहीं देती है।

जहां तक ​​मेरा व्याख्या समझ में आया, SSH ग्राहक और ssh-एजेंट के बीच प्रोटोकॉल कोई रास्ता नहीं SSH1 या SSH2 में एक ssh-एजेंट से निजी कुंजी बाहर निकलने के लिए proviedes।

+2

यह वास्तव में प्रश्न का उत्तर नहीं है - अर्थात्, क्या एससीएच एजेंट को अपनी डिक्रिप्ट की गई कुंजी के लिए पूछने का कोई तरीका है, उदाहरण के लिए उन्हें किसी अन्य एसएसएच क्लाइंट को खिलाने के लिए जो एसएस-एजेंट का उपयोग कैसे करें, यह नहीं जानता है। –

+2

प्रश्न का उत्तर: नहीं, यह संभव नहीं है। लिंक किए गए दस्तावेज़ में सूचीबद्ध लिस क्या संभव है, और यह एक नहीं है। – pts

+1

काफी विपरीत, _everything_ आभासी दुनिया में संभव है, यह लक्ष्य को प्राप्त करने के लिए समय और प्रयास पर निर्भर करता है। उदाहरण के लिए, इस प्रकार आप एसएसएच-एजेंट से चाबियां निकालने/चुरा सकते हैं: https://blog.netspi.com/stealing-unencrypted-ssh-agent-keys-from-memory/ – galaxy

-1

यह एक sysadmin सवाल है, लेकिन केवल निजी कुंजी के लिए ~/.ssh/id_rsa या id_dsa में देखें। उन्हें पहले स्थान पर एसएसएच-एजेंट में जाना था ...

+0

मुझे '~/.ssh/id *' फ़ाइलों के बारे में पता है, और मुझे उनकी परवाह नहीं है। मैं एसएसएच एजेंट के * मेमोरी * में चाबियों तक पहुंच प्राप्त करना चाहता हूं। – pts

+1

मुझे उन कुंजियों की परवाह है जो अन्य होस्टों (एजेंट अग्रेषण के माध्यम से) से जोड़े गए थे, और फ़ाइलों को पढ़ने के लिए इन होस्टों से फिर से कनेक्ट करना सुविधाजनक नहीं है। – pts

1

मेरे मामले में मैंने गलती से .ssh फ़ोल्डर हटा दिया लेकिन मेरी चाबियाँ लोड हो गईं। लेकिन चूंकि मैं उन लोगों को एसएसएच-एड से पुनर्प्राप्त नहीं कर सकता, इसलिए मुझे फ़ाइल रिकवरी सॉफ़्टवेयर का उपयोग करना पड़ा।

+1

डिस्क रिकवरी सॉफ़्टवेयर के विकल्प के रूप में, आप चल रहे लिनक्स प्रक्रिया (उदाहरण के लिए * एसएसएच-एजेंट *) की स्मृति को रूट ('सुडो बिल्ली/proc/$$/mem') के रूप में डंप कर सकते हैं, लेकिन उचित मांग जोड़ सकते हैं)। शायद डिस्क रिकवरी सॉफ़्टवेयर का उपयोग करना आसान है। – pts

संबंधित मुद्दे