2012-08-27 19 views
10

में है या नहीं, मेरे पास निम्न स्क्रिप्ट में मेरी कमांड है जो होस्ट को ज्ञात होस्ट्स में ssh में जोड़ती है।यह जांचने के लिए कि कोई मेजबान आपके ज्ञात_होस्ट ssh

VAR2=$(expect -c ' 
spawn ssh -o StrictHostKeyChecking=no '"[email protected]$REMOTE_HOST_IP"' 
expect "*?assword:*" 
send "'"$REMOTE_HOST_PASSWD"'\r" 
expect { 
"Permission denied, please try again." { 
exit '"$WRONG_PASSWORD"' 
} 
} 
') 

ठीक काम करता है, लेकिन मैं आदेश से पहले को नियंत्रित करता है, तो मेजबान known_hosts में पहले से ही है और नहीं आदेश पर अमल करता है, तो यह known_hosts में पहले से ही है की जरूरत है। मैं कैसे जांच सकता हूं कि कोई होस्ट ज्ञात_होस्ट में है या नहीं?

उत्तर

24

प्रयास करें: ssh-keygen -F <hostname>

known_hosts लाइन (रों) यदि होस्टनाम फिंगरप्रिंट पाया जाता है और आदेश रिटर्न 0, अन्यथा कुछ भी नहीं दिखाया गया है और आदेश रिटर्न 1 दिखाई देंगे।

+0

ऐसा कुछ भी प्रतीत नहीं होता है, या स्क्रीन पर कुछ भी प्रिंट नहीं करता है। अजीब। –

+0

@ विन्सक्रोनलेन, ऐसा तब होना चाहिए जब आपके होस्टनाम के लिए कोई मिलान नहीं मिले। केवल पूर्ण मैच लौटे। – complex857

+0

हाँ वह मेरा बुरा था। मैं सिर्फ मेजबाननाम का उपयोग नहीं कर रहा था यानी: google.com, मैं गिट होस्ट का उपयोग कर गिट रेपो के लिए एक कुंजी देखने की कोशिश कर रहा था यानी: [email protected] ... एक बार जब मैंने अकेले होस्टनाम का इस्तेमाल किया तो यह बहुत अच्छा काम करता था । –

1

ssh-keygen (1) आदमी पृष्ठ के लिए एक known_hosts फ़ाइल में निर्दिष्ट होस्ट नाम, पाए जाने वाले सभी घटनाओं लिस्टिंग के लिए

एफ होस्ट नाम खोजें अनुसार। यह विकल्प हैश होस्ट नाम या पते खोजने के लिए उपयोगी है और इसका उपयोग -H विकल्प के साथ एक हैश प्रारूप में मिली कुंजी मुद्रित करने के लिए भी किया जा सकता है।

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