जाँच ssh कुंजी पासफ़्रेज़ है


8

मेरे पास उपयोगकर्ताओं का एक समूह है, जो एसएसएच कुंजी के साथ अन्य सर्वरों पर खातों तक पहुंच रखते हैं। वर्तमान में मेरे पास एक स्क्रिप्ट है जो ssh सार्वजनिक कुंजियों को एकत्र करती है और उन्हें सही सर्वर पर सही खाते में वितरित करती है।

मैं जो करना चाहता हूं, उस स्क्रिप्ट को यह जांचने के लिए मिलता है कि किसी भी उपयोगकर्ता की ssh कुंजी सार्वजनिक कुंजी को स्वीकार करने और उसे वितरित करने से पहले पासफ़्रेज़ है।

मैं चीजों के एक नंबर की कोशिश की है, एक का उपयोग कर की तरह ssh-agentऔर ssh-addऔर उसके बाद समस्या है जब आता है ssh-addपदबंध के लिए कहा जाता है।

क्या opensslपासफ़्रेज़ की जांच करने के लिए कुछ पाने का एक तरीका है , 1यदि कुंजी पासफ़्रेज़ है, तो रिटर्न कोड के साथ थोड़ा विफल हो जाए?

धन्यवाद!


क्या आप स्पष्ट कर सकते हैं कि क्या आवश्यकता है है पासफ़्रेज़ या नहीं यह है करने के लिए - और क्योंकि क्या कारण से?
user1686

ग्रैविटी: मेरी आवश्यकता यह सुनिश्चित करने के लिए है कि उपयोगकर्ताओं ने अपनी ssh कीज़ पर पासफ़्रेज़ सेट किए हैं, केवल पासफ़्रेज़ वाली कुंजी अन्य सर्वरों को वितरित की जाएगी।
पीटर किसान

जवाबों:


11

यदि एक कीफाइल एक पासफ़्रेज़ का उपयोग करता है, तो उसमें "प्रोक-टाइप:" विशेषता होती है, जो "एनक्रिएटेड" शब्द के साथ सेट की गई है।

तो, आप यह निर्धारित कर सकते हैं कि यदि कोई केफाइल पासफ़्रेज़ को इसके माध्यम से चलाकर findऔर grepयह देखने के लिए उपयोग करता है कि उसमें स्ट्रिंग है 'ENCRYPTED'।

# list keyfiles that USE a passphrase
HOMES=/home /mnt/nfs_home
find $HOMES -maxdepth 3 -type f -path '*/.ssh/id* -name "id_[dr]sa*" -exec grep -q "ENCRYPTED" {} \; -print

फ़ाइलों की एक सूची प्रिंट है पासफ्रेज। फिर आप उन सभी कीफाइलों की सूची के खिलाफ मेल कर सकते हैं जो पासफ़्रेज़ का उपयोग नहीं करते हैं। सभी की-फाइल्स की एक सूची प्राप्त की जा सकती है, जैसे कि -execपैरामीटर को बाहर छोड़ कर, निम्नानुसार:

# list all keyfiles
HOMES=/home /mnt/nfs_home
find $HOMES -maxdepth 3 -type f -path '*/.ssh/id* -name "id_[dr]sa*" -print

नए SSH कुंजी प्रारूप के साथ संभव नहीं है, Proc-Typeहैडर एन्क्रिप्ट किए जाने के बावजूद फ़ाइल पर नहीं लिखा जाता है।
वनरोई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.