SSH: डायनामिक एड्रेस के साथ ज्ञात होस्ट


12

मुझे एक गतिशील आईपी पते के साथ एक मेजबान से कनेक्ट करने की आवश्यकता है।

जब भी इसका IP बदलता है, SSH मुझे फिंगरप्रिंट सत्यापन की बात बताता है:

The authenticity of host '...' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)?

क्या SSH होस्ट सार्वजनिक कुंजी को पास करना संभव होगा, ताकि:

  1. SSH होस्ट की प्रामाणिकता को स्वचालित रूप से सत्यापित करता है
  2. होस्ट कुंजी ज्ञात_होस्ट फ़ाइल में संग्रहीत नहीं है

यह सवाल अलग है कि मैं ज्ञात मेजबानों के लिए एसएसएच के मेजबान सत्यापन से कैसे बच सकता हूं? के बाद से है कि अन्य प्रश्न दबाने SSH सत्यापन करना है, जबकि मैं नहीं उसे दबाने के लिए चाहते हैं: मैं करना नहीं बल्कि SSH से मेजबान प्रमाणीकृत, बस मेजबान की सार्वजनिक कुंजी का उपयोग कर के लिए (जो मैं जानता हूँ कि, और यह एक फ़ाइल में संग्रहीत है) चाहते हैं known_hostsफ़ाइल।

मेरे लिए एक अन्य सवाल हर बार एक अलग सर्वर से जुड़ने के बारे में लगता है, बजाय एक गतिशील आईपी के एक एकल प्रसिद्ध सर्वर से कनेक्ट करने के लिए।

जवाबों:


8

सबसे अच्छा समाधान (यानी मैं जो चाहता हूं उसके सबसे करीब) मैं विकल्प का उपयोग कर सकता हूं HostKeyAlias: यह एक होस्टनाम का उपयोग करेगा जिसे मैं एक्सेस करने के लिए निर्दिष्ट करता हूं known_hosts(बजाय आईपी मैं कनेक्ट कर रहा हूं)।

मुझे known_hostsदिए गए hostname (जैसे:) का उपयोग करके मेजबान की सार्वजनिक कुंजी जोड़ने की आवश्यकता होगी myhostऔर फिर इसका उपयोग करके कनेक्ट करें:

ssh -o 'HostKeyAlias myhost' ...

मुझे पता है कि यह एक समय हो गया है, लेकिन: यदि यह आपके प्रश्न का सबसे अच्छा जवाब देता है, तो कृपया इसे स्वीकार करें।
किटीकिटीबैंगबैंग

दूसरों के लिए ध्यान दें: आप HostKeyAliasअपनी ~/.ssh/configफ़ाइल या यहां तक ​​कि वैश्विक /etc/ssh/ssh_configफ़ाइल के लिए कॉन्फ़िगरेशन मान जोड़ सकते हैं ।
kael

6

known_hostsफ़ाइल, बस कुंजी नहीं है, यह भी होस्ट नाम आप कनेक्ट करने के लिए उपयोग शामिल है, और यदि संभव हो तो आईपी कि मेल खाती है। यही कारण है कि आप त्रुटि देखते हैं, यह उस सर्वर से प्राप्त ट्रिपल की तुलना करता है जिसे आपने ज्ञात_होस्ट्स फ़ाइल में संग्रहीत किया है।

इसलिए, यदि आईपी बदलता रहता है, तो आप अक्षम कर सकते हैं CheckHostIPऔर इसका मतलब है कि यह केवल होस्टनाम और होस्ट कुंजी की जांच करेगा। यदि वे अनछुए रहते हैं, तो आपके पास कम शिकायतें होनी चाहिए, लेकिन अगर आपके DNS को कोई अपहृत करता है तो आपको जोखिम होगा।


1
जवाब के लिए धन्यवाद, मैं इसे asap परीक्षण करूँगा! वैसे भी यह रिस्ट पर क्यों होगा? अगर मुझे होस्ट की SSH सार्वजनिक कुंजी पता है, तो यह किसी भी मामले में पूरी तरह से सुरक्षित होने के लिए पर्याप्त होना चाहिए (जब तक कि कोई व्यक्ति उस होस्ट की निजी कुंजी को चोरी करने का प्रबंधन नहीं करता है), क्या इसे नहीं करना चाहिए?
peoro

और फिर भी मुझे वास्तव में यह पसंद नहीं है अगर मुझे ईमानदार होना है। उस ध्वज का उपयोग करके SSH अभी भी एक्सेस करेगा known_hosts। क्यों? क्या मैं यह नहीं कह सकता कि "S, X से जुड़ा है जिसकी सार्वजनिक कुंजी Y है?" क्यों नहीं? यह 100% निश्चित नहीं होगा।
peoro

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