जवाबों:
-o "UserKnownHostsFile /dev/null"
कार्य करना चाहिए।
grep
स्टडआउट और स्टेडर में विलय करना होगा; बाहर निकलने की स्थिति भी बदल सकती है। यदि उपयोग किया जाता है bash
, तो संदेश से छुटकारा पाने के लिए प्रक्रिया प्रतिस्थापन का उपयोग करना बेहतर होगा ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]
:। यह पाइप से बच जाएगा और इस प्रकार निकास स्थिति से निपटने में संबंधित परिवर्तन।
यदि आप यह व्यवहार चाहते हैं क्योंकि आप क्लाउड सर्वर (AWS EC2, Rackspace CloudServers इत्यादि) के साथ काम कर रहे हैं या आप लगातार Vagrant में नई छवियों का प्रावधान कर रहे हैं, तो आप बैश उपनाम या अधिक विकल्पों को जोड़ने के बजाय अपने SSH कॉन्फ़िगरेशन को अपडेट करना चाह सकते हैं। कमांड लाइन।
कुछ जोड़ने पर विचार करें:
Host *.mydomain.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
User foo
LogLevel QUIET
मुझे लगता है कि आपके ज्ञात_होस्ट्स (इन सेवाओं को चलाने वाले लोग मेरे अनुभव में हैं, कम से कम इतना होशियार हैं कि वे अपने होस्ट कीज़ को एक ही होस्टनाम की सेवा करने वाली मशीनों के बीच बनाए रखें) और फिर StrictHostKeyChecking को चालू करते हुए, CheckHostIP को बंद करें, और LogLevel ERROR के साथ लॉगिंग आपको सुरक्षा का त्याग किए बिना सबसे अच्छा अनुभव देगा। (ठीक है, चेकहोस्टिप के बिना आपको डीएनएस पर भरोसा करने की ज़रूरत है, जो व्यापक DNSS या कुछ समान के बिना एक बड़ा गैपिंग छेद है; लेकिन हम अभी उस रग के तहत स्वीप करेंगे।)
मैं रीड-ओनली ज्ञात_होस्ट फ़ाइल का उपयोग करता हूं, इसलिए मुझे कुछ करना होगा या मुझे ज्ञात_होस्ट में प्रविष्टियाँ नहीं जोड़ने के बारे में अंतहीन चेतावनी प्राप्त करनी होगी।
मैं क्या उपयोग करता हूं:
Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR
मैं इन सेवाओं को HTTPS के माध्यम से अपनी वेबसाइटों पर अपनी SSH होस्ट कुंजी प्रकाशित करने के लिए चाहूंगा, इसलिए मैं उन्हें पहली बार कनेक्ट किए बिना स्पष्ट रूप से कॉपी कर सकता हूं और संभावित रूप से MITM हमले के लिए खुद को उजागर कर सकता हूं।
मैं सुझाव देता हूँ
LogLevel ERROR
ऊपर
LogLevel QUIET
इसलिए आपको अभी भी "होस्टनाम हल नहीं कर सका" और ऐसी अन्य त्रुटियां हैं
क्या आपने अक्षम करने की कोशिश की है StrictHostKeyChecking
? आप इसे -o
विकल्प के साथ या कॉन्फ़िगरेशन फ़ाइल में कर सकते हैं ~/.ssh/config
।
मुझे निम्नलिखित .ssh / config प्रविष्टियाँ उपयोगी लगीं (LAN DHCP और DNS के साथ):
CheckHostIP no
Host *.*
CheckHostIP yes
परिणाम स्थानीय मशीन के नाम "ज़ोरा" या "गोरोन" गतिशील रूप से निर्दिष्ट आईपी पते के खिलाफ जांच नहीं करेगा, लेकिन www.mycompany.com या node42.planetlab.com में अभी भी उनके स्थिर आईपी की पुष्टि होगी।
grep -v "^Warning: Permanently added"