2016-01-04 11 views
5

मैं इसे लंबे समय से ढूंढ रहा हूं।एसएसएच सर्वर से सार्वजनिक कुंजी प्राप्त करें

मुझे एसएसएच सर्वर से निकालने और मॉड्यूलस और एक्सपोनेंट प्राप्त करने की आवश्यकता है।

उदाहरण के लिए, मैं जानता हूँ कि, कि xxx.xxx.xxx.xxx ssh चल रहा है सर्वर पर (मैं इस सर्वर/पिंग से जुड़ सकते हैं), लेकिन मैं उपयोगकर्ता नाम पता और पासवर्ड तो प्रवेश नहीं कर सकते न।

मुझे इस सर्वर की सार्वजनिक आरएसए कुंजी के मॉड्यूलस और एक्सपोनेंट प्राप्त करने की आवश्यकता है।

मुझे पता चला कि एसएसएच-स्कैनक मॉड्यूलस + एक्सपोनेंट (दस्तावेज़ीकरण से) प्राप्त कर सकता है, लेकिन केवल अगर एसएसएच-आरएसए 1 का उपयोग किया जाता है। अगर मैं ssh-rsa (2) ssh-keyscan के साथ सार्वजनिक कुंजी प्राप्त करने का प्रयास करता हूं, तो मैं आउटपुट मॉड्यूलस और एक्सपोनेंट से पुनर्प्राप्त नहीं कर सकता।

क्या यह संभव है?

+0

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

+0

मुझे पता है। यह मेरे स्नातक थीसिस के लिए है। कुछ सार्वजनिक कुंजी इकट्ठा करने की आवश्यकता है .... :) – user3157560

+1

ठीक है, बस कुछ बनाओ। – arkascha

उत्तर

8

निश्चित रूप से आप कर सकते हैं!

ssh-keygen -f github.pub -e -m pem > github.pem 

पार्स ASN.1 एन्कोडिंग:

ssh-keyscan -t rsa github.com | sed "s/^[^ ]* //" > github.pub 

Convert SSH 509 सार्वजनिक कुंजी प्रारूप में सार्वजनिक कुंजी प्रारूप: GitHub से

डाउनलोड सार्वजनिक कुंजी और यह github.pub फ़ाइल में बचाने के कुंजी की सार्वजनिक कुंजी मापांक और प्रतिपादक प्राप्त करने के लिए:

cat github.pem | sed "/--/d" | openssl asn1parse | grep "INTEGER" | sed "s/.*://" 

परिणाम:

AB603B8511A67679BDB540DB3BD2034B004AE936D06BE3D760F08FCBAADB4EB4EDC3B3C791C70AAE9A74C95869E4774421C2ABEA92E554305F38B5FD414B3208E574C337E320936518462C7652C98B31E16E7DA6523BD200742A6444D83FCD5E1732D03673C7B7811555487B55F0C4494F3829ECE60F94255A95CB9AF537D7FC8C7FE49EF318474EF2920992052265B0A06EA66D4A167FD9F3A48A1A4A307EC1EAAA5149A969A6AC5D56A5EF627E517D81FB644F5B745C4F478ECD082A9492F744AAD326F76C8C4DC9100BC6AB79461D2657CB6F06DEC92E6B64A6562FF0E32084EA06CE0EA9D35A583BFB00BAD38C9D19703C549892E5AA78DC95E250514069 
23 

पहली पंक्ति एक मॉड्यूलस है और दूसरी पंक्ति एक एक्सपोनेंट है।

+0

बहुत बहुत धन्यवाद! मैं इसे पूरे दिन कर रहा था, लेकिन मेरी समस्या यह थी कि मैं ssh-keygen -f से स्ट्रिंग करता हूं .... एसएसएच-आरएसए (केवल अंतिम बेस 64-एन्कोडेड-कुंजी) के बिना स्ट्रिंग: '(और कुछ भी काम नहीं कर रहा था – user3157560

+1

आपका स्वागत है अगली बार प्रश्न में आपके द्वारा किए गए सभी चरणों का उल्लेख करें। – divanov

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