दूरस्थ होस्ट द्वारा भेजी गई ECDSA कुंजी के लिए फिंगरप्रिंट की जाँच करें [बंद]


24

सर्वर में ssh करने का प्रयास करने पर मुझे प्रसिद्ध चेतावनी संदेश मिला है:

$ ssh whateverhost
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxx/xxxxxxx.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/user/.ssh/known_hosts:10
ECDSA host key for ipofmyhost has changed and you have requested strict checking.
Host key verification failed.

और मुझे पता है कि क्यों मैंने ऐसे सर्वर के आईपी को बदल दिया है। लेकिन अगर ऐसा नहीं होता, तो मैं दूरस्थ होस्ट द्वारा भेजी गई ECDSA कुंजी के लिए फिंगरप्रिंट की जांच कैसे कर सकता था?

मैंने ऐसा करने की कोशिश की है:

echo -n ipofthehost | sha256sum

लेकिन मुझे एक ही फिंगरप्रिंट नहीं मिलता है। मैंने भी "होस्टनाम, आईपी" की तरह की कोशिश की, लेकिन मुझे मैच नहीं मिला।

यदि मैं अपनी ज्ञात_होस्ट फ़ाइल से प्रवेश को हटाता हूं और मैं फिर से ssh करने की कोशिश करता हूं, तो यह सफल होता है और निम्नलिखित बताता है:

ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxx/xxxxxxx.
Are you sure you want to continue connecting (yes/no)? 

तो क्या यह फिंगरप्रिंट प्राप्त करने के लिए sha256sum को लागू कर रहा है और मैं इसे कैसे जांच सकता हूं?


2
ज्ञात अच्छे मूल्य के बिना आप इसकी जांच नहीं कर सकते। आप इसे केवल पहली बार लिखते हैं जब आप SSHd शुरू करते हैं और चाबियाँ उत्पन्न होती हैं, और उस ज्ञात अच्छे मूल्य के खिलाफ जांच करें।

मैंने आपके प्रश्न का संपादन किया। यह साइट केवल व्यावसायिक व्यावसायिक वातावरण के बारे में प्रश्न स्वीकार करती है। होम नेटवर्किंग प्रश्न यहां ऑफटॉपिक हैं, मैंने अपने संपादन के साथ आपके प्रश्न को सहेजने का प्रयास किया। वर्तमान में इस आधार पर उस प्रश्न को बंद करने के लिए एक वोट है।
पीटर ने कहा कि मोनिका

@ user186340 यह सच प्रतीत होता है कि "आप केवल SSHd शुरू करने पर पहली बार इसे लिखते हैं"। यदि आपके पास एसएसएचडी चलाने वाली मशीन तक पहुंच है, तो आप /etc/ssh/ssh_host_ecdsa_key.pubफिंगरप्रिंट प्राप्त करने के लिए कर सकते हैं । मैंने अभी किया।
जमदग्नि

जवाबों:


12

एक सार्वजनिक कुंजी फिंगरप्रिंट IP स्ट्रिंग का सरल हैश नहीं है।

एक दूरस्थ होस्ट सार्वजनिक कुंजी को पुनः प्राप्त करने के लिए जिसका आप उपयोग कर सकते हैं ssh-keyscan <IP>तब आप अपने फिंगरप्रिंट ( ssh-keygen -lf <public_key_file>) को निकालने के लिए सामान्य उपकरणों का उपयोग कर सकते हैं ।

अंत में आप अपनी known_hostsफ़ाइल में वर्तमान फिंगरप्रिंट की तुलना कर सकते हैं ssh-keygen -l -F <domain_or_ip>


2
मैं उलझन में हूँ कि जब SSH के माध्यम से कनेक्ट हो रहा है और पहली बार ( ssh -oHostKeyAlgorithms='ecdsa-sha2-nistp256' william@my.server) के लिए एक ecdsa कुंजी मजबूर कर रहा है, तो यह मुझे एक 43-अंकीय अल्फ़ान्यूमेरिक फ़िंगरप्रिंट ( ECDSA key fingerprint is SHA256:sBKcTiQ5V.... etc.) अभी तक देता है जब मैं चलाता ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pubहूँ मुझे 32 वर्ण हेक्स मिलता है ??
विलियम टरेल

1
@WilliamTurrell यह इसलिए हो रहा है क्योंकि आपके सर्वर में एक पुराना (संभावित पूर्व ओपनएसएसएच 6.8) संस्करण होना चाहिए ssh-keygen(या आपके सर्वर-प्रदाता ने समय के साथ नहीं रखा है और अभी भी केवल नए SHA56 के बजाय md5 हैश प्रदान करता है)। वहाँ समाधान यहाँ सूचीबद्ध हैं: superuser.com/questions/929566
SeldomNeedy

9

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

ssh-keyscan -t ecdsa ip_or_hostmane > ecdsa_file_to_compare

फिर हम पता कर सकते हैं कि हमारे ज्ञात_होस्ट्स में वह फ़ाइल कहाँ है जो सार्वजनिक (ecdsa) कुंजी है:

ssh-keygen -l -F ipofhost

अगर हम अपनी जानी-पहचानी_होस्ट्स फ़ाइल (केवल इस होस्ट से संबंधित प्रविष्टि) की सामग्री डालते हैं, तो हम इसे ecdsa_file_from_ogn_hosts कह सकते हैं और फिर उनकी तुलना इस प्रकार कर सकते हैं:

ssh-keygen -lf ecdsa_file_to_compare
ssh-keygen -lf ecdsa_file_from_known_hosts

और जाँच करें कि क्या शो वही हैश है।

बेशक वे मेल नहीं खाते, यही कारण है कि मुझे चेतावनी संदेश मिला (आंतरिक रूप से इस मिलान की जांच करता है)। यदि हम आईपी परिवर्तन के बारे में सुनिश्चित हैं (इसलिए हम एक मध्य-काल के हमले से पीड़ित नहीं हैं) तो हम अपनी ज्ञात_होस्ट्स फ़ाइल में उस होस्ट की प्रविष्टि को हटा सकते हैं और अगली बार जब हम इसमें नई प्रविष्टि दर्ज करेंगे इसे ऐसी फ़ाइल में जोड़ा जाएगा।

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