पहली बार सार्वजनिक / निजी कुंजी के साथ SSH के माध्यम से मशीन से कनेक्ट होने पर मैं "ज्ञात_होस्ट" प्रश्न को कैसे छोड़ दूं? [डुप्लिकेट]


16

पहली बार सार्वजनिक / निजी कुंजी के साथ SSH के माध्यम से मशीन से कनेक्ट होने पर मैं "ज्ञात_होस्ट" प्रश्न को कैसे छोड़ दूं?


जब इसे दूसरे प्रश्न से पहले बनाया गया था तो इसे डुप्लिकेट के रूप में क्यों चिह्नित किया गया था?
जेसन एक्सेलसन

जवाबों:


31

अन्य सभी मौजूदा उत्तर UserKnownHostsFile = / dev / null को याद कर रहे हैं

यदि आप एक बार उपयोग करना चाहते हैं, तो आप इसे कर सकते हैं:

ssh -o StrictHostKeychecking=no hostname

यदि आप इसे बार-बार करना चाहते हैं, तो आपको अपने ~ / .ssh / config में निम्नलिखित की तरह कुछ जोड़ना चाहिए

Host 192.168.0.*
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null

विंडोज के लिए ओपनएसएसएच पर इसे कॉन्फ़िगर करने के लिए बस के /dev/nullसाथ बदलें NUL

इससे अच्छी व्याख्या: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html


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

13

के StrictHostKeyCheckingमाध्यम से बंद ssh_configया कमांड लाइन विकल्प।


/ etc / ssh / ssh_config या ~ / .ssh / config --- या जो भी समतुल्य है यदि आपके क्लाइंट प्लेटफ़ॉर्म पर विंडो है
डग हैरिस

3

आप सार्वजनिक कुंजी प्राप्त कर सकते हैं, इसे know_hosts फ़ाइल में जोड़ सकते हैं और फिर इसे पुनः सबमिट कर सकते हैं:

ssh-keyscan -t rsa hostname >> .ssh/known_hosts
ssh-keygen -H
rm .ssh/known_hosts.old

2
$ ssh -o StrictHostKeychecking=no hostname

इससे चेक को छोड़ दिया जाएगा और पहले लॉगिन पर रिमोट होस्ट की कुंजी अपने आप जुड़ जाएगी। (वहाँ भी विकल्प CheckHostIP है, लेकिन यह वास्तव में चेक के लिए अक्षम नहीं लगता है कि क्या एक कुंजी मौजूद है)।


2
मैं UserKnownHostsFile का उपयोग करना भी पसंद करता हूं ताकि हस्ताक्षर मेरे सिस्टम पर याद न रहें। एक अच्छी चाल:ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeychecking=no hostname
मेटाविडा

2

मुझे खोजने में थोड़ा समय लगा। सबसे आम usecase मैंने देखा है जब आप दूरस्थ नेटवर्क के लिए ssh सुरंगों को मिला है। यहां सभी समाधानों ने चेतावनी का उत्पादन किया जिसने मेरी लिपियों (नागों) को तोड़ दिया।

मुझे जिस विकल्प की आवश्यकता थी वह था:

NoHostAuthenticationForLocalhost yes

जैसा कि, नाम से ही पता चलता है कि यह केवल लोकलहोस्ट पर लागू होता है।


0

आप जाँच को अक्षम कर सकते हैं, लेकिन निश्चित रूप से जो कम सुरक्षित है। एक आदर्श स्थिति में आपको क्या करना चाहिए, कोई ऐसा व्यक्ति हो जो पहले से ही मशीन का उपयोग करने के लिए इसे सार्वजनिक होस्ट कुंजी को हथियाने और उपयोग करने के लिए ssh को बताए। अर्थात: का आउटपुट लें:

cat /etc/ssh/ssh_host_rsa_key.pub

मशीन के होस्टनाम को प्रीपेंड करें, और उस लाइन को अपनी मशीन पर ~ / .sh / ज्ञात_होस्ट फ़ाइल में जोड़ें। आप कुछ इस तरह से देखेंगे:

myhost.example.com ssh-rsa AAAAB3Netc ...

वैकल्पिक रूप से, यदि आप केवल कुंजी के फिंगरप्रिंट को पकड़ना चाहते हैं, जो एक सीमित बैंडविड्थ चैनल (जैसे फोन कॉल) पर स्थानांतरित करना आसान हो सकता है, तो आप अपना सहायक चला सकते हैं:

ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

0

यदि आप बस अस्थायी रूप से होस्ट चेकिंग को अक्षम करना चाहते हैं, तो आप लाइवसीडी सिस्टम में लॉग इन कर सकते हैं, उदाहरण के लिए, ~/.ssh/known_hostsकिसी अन्य चीज़ का नाम बदलें , और फिर काम पूरा होने पर इसे वापस बदल दें।


-2
  1. "StrictHostKeyChecking no" को / etc / ssh / ssh_config में जोड़ें
  2. cd ~ / .ssh
  3. rm know_hosts
  4. ln -s / dev / null know_hosts

बिंगो


1
आप जानते हैं कि यह सवाल किस तरह के हमले को रोकने वाला है, क्या आप?
वॉनब्रांड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.