सवाल एसएसएच के लिए known_hosts में hostkey जोड़ें मत


मैं एसएसएच के माध्यम से एक मेजबान से कनेक्ट करना चाहता हूं लेकिन मैं नहीं चाहता कि मेजबाननाम मेरे लिए जोड़ा जाए ~/.ssh/known_hosts

मैं उसे कैसे कर सकता हूँ?


94
2018-05-15 00:03


मूल




जवाब:


यदि आप यह व्यवहार चाहते हैं क्योंकि आप क्लाउड सर्वर (एडब्ल्यूएस ईसी 2, रैकस्पेस क्लाउडसेवर इत्यादि) के साथ काम कर रहे हैं या आप लगातार वग्रेंट में नई छवियों का प्रावधान कर रहे हैं तो आप बैश उपनाम या अधिक विकल्पों को जोड़ने के बजाय अपनी एसएसएच कॉन्फ़िगरेशन अपडेट करना चाहेंगे कमांड लाइन।

कुछ जोड़ने पर विचार करें:

Host *.mydomain.com 
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  User foo
  LogLevel QUIET
  • सुरक्षित होने के लिए मेजबान के लिए regex के रूप में सख्त के रूप में उपयोग करें।
  • LogLevel को QUIET पर सेट करने से चेतावनी दी जाएगी जो गिलाउम ने दिखाए जाने से उल्लेख किया है

83
2018-06-07 00:28



आपको वास्तव में StrictHostKeyChecking को पूरी तरह से अक्षम करने का प्रयास नहीं करना चाहिए, इसलिए क्लाउड सर्वर का क्लाउड सर्वर के साथ काम करने के लिए एक बड़ा समझौता है। - Alex Recarey
यह मेरे लिए बहुत उपयोगी साबित हुआ क्योंकि मैं वाग्रेंट के खिलाफ शिपिट (जावास्क्रिप्ट परिनियोजन उपकरण) का उपयोग कर रहा था। मैं आसानी से मापदंडों पर नहीं पहुंच पाया था शिपिप एसएसएच में जा रहा था, इसलिए इससे मुझे उपकरण को हटाने और उसे यह बताने की अनुमति मिली कि मैंने क्या किया और यह याद रखना नहीं चाहता था। - John Munsch
LogLevel वह है जो मैं देख रहा था। स्क्रिप्ट चलाने पर कंपनी कॉन्फ़िगर किए गए नोटिस को न दिखाने का अतिरिक्त लाभ है! (मैं अब w / loglevel ERROR चल रहा हूँ) - Anshu Prateek
मैं इसे किस फाइल में जोड़ूं? - Wim Deblauwe
यह आपकी एसएसएच विन्यास फाइल है। लिनक्स या मैकोज़ में फ़ाइल आमतौर पर आपकी होम निर्देशिका के भीतर .ssh नामक निर्देशिका में होगी और नाम कॉन्फ़िगर - ~ / .ssh / config - cclark


-o "UserKnownHostsFile /dev/null"

कार्य करना चाहिए।


79
2018-05-15 00:30



इरादे के अनुसार काम करता है, लेकिन यह हमेशा रिपोर्ट करेगा: "चेतावनी: ज्ञात मेजबानों की सूची में स्थायी रूप से 'होस्टनाम, आईपी' (आरएसए) जोड़ा गया।" मैंने इसे दूर कर दिया: 2> और 1 | grep -v "^Warning: Permanently added" - Guillaume Boudreau
यही मुझे अपने परिदृश्य के लिए जरूरी है - कोई DNS, डीएचसीपी के साथ लैन, कंप्यूटर हर समय अलग-अलग पते प्राप्त करते हैं। मुझे हर समय 'हां' टाइप करना होगा, लेकिन अन्यथा यह बहुत अच्छा है। - Tomasz Gandor
ऐड -ओ "लॉगलेवल त्रुटि" और यह अब चेतावनी के साथ शिकायत नहीं करेगा - John
नोट: उस संदेश को दबाने का अनुरोध "चेतावनी: ज्ञात मेजबानों की सूची में होस्टनाम, आईपी '(आरएसए) स्थायी रूप से जोड़ा गया।" रखरखाव करने वालों को सूचित किया गया था bugzilla.mindrot.org/show_bug.cgi?id=2413 - Ben Creasy
पिपिंग grep stdout और stderr मर्ज करेगा; बाहर निकलने की स्थिति भी बदल सकती है। अगर उपयोग कर रहे हैं bashसंदेश से छुटकारा पाने के लिए प्रक्रिया प्रतिस्थापन का उपयोग करना बेहतर होगा: ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]। यह पाइप से बच जाएगा और इस प्रकार बाहर निकलने की स्थिति हैंडलिंग में संबंधित परिवर्तन होगा। - Alex O


मुझे लगता है कि आपके ज्ञात_होस्ट्स में मेजबान कुंजी जोड़ना (इन सेवाओं को चलाने वाले लोग, मेरे अनुभव में, कम से कम स्मार्ट होस्ट होस्ट की सेवा करने वाली मशीनों के बीच अपनी मेजबान कुंजी को बनाए रखने के लिए पर्याप्त स्मार्ट हैं) और फिर StrictHostKeyChecking चालू करना, चेकहोस्टिप को बंद करना, और LogLevel ERROR के साथ लॉगिंग आपको सुरक्षा बलिदान के बिना सबसे अच्छा अनुभव देगा। (ठीक है, चेकहोस्टिप के बिना आपको DNS पर भरोसा करने की आवश्यकता है, जो व्यापक DNSSEC या कुछ समान के बिना एक बड़ा अंतर छेद है, लेकिन हम इस पल के लिए गलीचा के नीचे बस इसे साफ़ कर देंगे।)

मैं केवल पढ़ने-योग्य ज्ञात_होस्ट फ़ाइल का उपयोग करता हूं, इसलिए मुझे कुछ करना है या मुझे ज्ञात चेतावनियां मिलती हैं जो ज्ञात_होस्ट में प्रविष्टियां जोड़ने में सक्षम नहीं हैं।

मैं क्या उपयोग करता हूं:

Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR

मैं इन सेवाओं को अपनी वेबसाइटों पर एचटीटीपीएस के माध्यम से अपनी एसएसएच होस्ट कुंजी प्रकाशित करना चाहता हूं, इसलिए मैं उन्हें पहले कनेक्ट करने के बिना स्पष्ट रूप से कॉपी कर सकता हूं और संभावित रूप से एमआईटीएम हमले में खुद को बेनकाब कर सकता हूं।


8
2018-05-20 17:40





मैं सुझाव देता हूँ

LogLevel ERROR

ऊपर

LogLevel QUIET

इसलिए आपको अभी भी "होस्टनाम हल नहीं किया जा सका" और ऐसी अन्य त्रुटियां मिलती हैं


5
2018-01-24 00:19



आप अपने एसएसएच कनेक्शन पर विश्वास करने में सक्षम होना चाहिए, imho। न सिर्फ अपने जोखिमों के बारे में चुप रहो। - sylvainulg
वास्तव में निर्भर करता है। हमारे पास विकास वातावरण हैं जो हर हफ्ते टूट जाते हैं और पुनर्निर्मित होते हैं, उनके ए रिकॉर्ड समान रहते हैं लेकिन प्रत्येक बार जब उनकी मेजबानी की जाती है तो उनकी होस्ट कुंजी उत्पन्न होती है। हम मेजबान कुंजी को जारी नहीं रख सकते हैं क्योंकि एक रिकॉर्ड को पर्यावरण के नाम से आधारित डेटाबेस में परिभाषित किया जाता है, और पर्यावरण के नाम किसी भी समय छोड़े जा सकते हैं या नए बनाए जा सकते हैं, इसलिए उपर्युक्त कामकाज वास्तव में उपयोगी है। - Alex Berry


एक एसएसएच सत्र के लिए, इसका उपयोग करें

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@host

3
2017-12-16 05:54



यह 5 साल की उम्र के एक प्रश्न पर एक स्वीकृत उत्तर के लिए कुछ भी नया नहीं जोड़ता है। - JakeGould


क्या आपने अक्षम करने की कोशिश की है StrictHostKeyChecking? आप इसे कर सकते हैं -o विकल्प या विन्यास फाइल में ~/.ssh/config


2
2018-05-15 00:11



मैं पहले से ही इसका उपयोग कर रहा हूँ। लेकिन इसका एक अलग प्रभाव पड़ता है: यह मेजबान कुंजी जांच के लिए सख्तता को कम करता है। अर्थात। जब होस्ट अज्ञात होता है, तब भी जब आप उस विकल्प को अक्षम करते हैं तो यह तब भी कनेक्ट होता है। इस प्रकार, यह अभी भी मेजबान बचाता है। लेकिन मुझे लगता है कि मुझे सही समाधान मिला है (मेरा जवाब देखें)। - Albert


मुझे निम्नलिखित .ssh / config प्रविष्टियां उपयोगी मिलीं (डीएचसीपी और डीएनएस के साथ लैन):

 CheckHostIP no

 Host *.*
 CheckHostIP yes

परिणाम स्थानीय मशीन नाम "ज़ोरा" या "गोरॉन" गतिशील रूप से असाइन किए गए आईपी पते के खिलाफ जांच नहीं करेगा, लेकिन www.mycompany.com या node42.planetlab.com के पास अभी भी उनके स्थिर आईपी की पुष्टि होगी।


0
2018-01-23 09:19