"होस्ट कुंजी सत्यापन विफल" के साथ एसएसएच कनेक्शन समस्या । .."त्रुटि

मैं एसएसएच के माध्यम से अपने लैन में एक और उबंटू मशीन से जुड़ सकता हूं । दोनों पीसी पर मैंने स्थापित किया openssh सर्वर लेकिन एक अन्य उबंटू कंप्यूटर से मैं एसएसएच के माध्यम से अपने पीसी से कनेक्ट नहीं कर सकता और मुझे यह त्रुटि मिली:

होस्ट कुंजी सत्यापन विफल रहा । ..

"होस्ट कुंजी सत्यापन विफल" का अर्थ है कि होस्ट रिमोट होस्ट की कुंजी बदल दी गई थी ।

एसएसएच रिमोट होस्ट की होस्ट कुंजियों को स्टोर करता है ~/.ssh/known_hosts. आप या तो उस टेक्स्ट फ़ाइल को मैन्युअल रूप से संपादित कर सकते हैं और पुरानी कुंजी को हटा सकते हैं (आप त्रुटि संदेश में लाइन नंबर देख सकते हैं), या उपयोग कर सकते हैं

ssh-keygen -R hostname

से मैन पेज:

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

(जो मैंने उत्तर से सीखाक्या एसएसएच और#39 की ज्ञात_होस्ट फ़ाइल से किसी विशेष होस्ट कुंजी को निकालना संभव है?).

यदि आप कुछ दूरस्थ/स्क्रिप्टिंग स्थितियों में चल रहे हैं, जहां आपको प्रॉम्प्ट-टू-ऐड-होस्टकी तक इंटरैक्टिव पहुंच की कमी है, तो इसके चारों ओर इस तरह काम करें:

$ ssh -o StrictHostKeyChecking=no user@something.example.com uptime

चेतावनी: स्थायी रूप से जोड़ा गया 'something.example.com, 10.11.12.13' (आरएसए) ज्ञात मेजबानों की सूची में ।

कभी-कभी ऐसी स्थिति भी होती है जब आप सीरियल कंसोल पर काम कर रहे होते हैं, फिर वर्बोज़ मोड में उपरोक्त कमांड की जांच करते हैं -v आपको दिखाएगा /dev/tty मौजूद नहीं है, जबकि यह करता है ।

ssh -v user@hostname

उपरोक्त मामले में बस हटा दें /dev/tty और एक सिमलिंक बनाएं /dev/ttyS0 को /dev/tty.

rm /dev/ttyln -s /dev/ttyS0 /dev/tty

एक विकल्प के रूप में, जोड़ें id_rsa.pub दूरस्थ स्थान पर, इसलिए पासवर्ड संकेत नहीं दिया जाता है और आपको लॉगिन एक्सेस मिलता है ।

मेरे मामले में, यह एक यूडीईवी समस्या के कारण हुआ था-कोई नहीं था /dev/tty डिवाइस नोड। मेरे लिए समाधान बस था:

sudo mknod -m 666 /dev/tty c 5 0

टर्मिनल पर:

ssh -o StrictHostKeyChecking=no -i YourPublicKey.pem user@example.com uptime

निम्न संदेश, या समान, दिखाई देगा:

Warning: Permanently added 'example.com, XX.XXX.XXX.XX' (ECDSA) to the list of known hosts. 00:47:37 up 3 min,  0 users,  load average: 0.00, 0.00, 0.00

फिर, सामान्य रूप से अपने ईसी 2 से कनेक्ट करें:

ssh -i YourPublickey.pem user@example.com

हो सकता है कि आपको केवल "हां" दर्ज करने की आवश्यकता हो जब एसएसएच पुष्टि करता है कि आप कनेक्ट करना जारी रखना चाहते हैं ।

की तरह bellow.

The authenticity of host 'xxx' can't be established.ECDSA key fingerprint is yyy.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'xxx' (ECDSA) to the list of known hosts.Enter passphrase for key '/Users/ysy/.ssh/id_rsa':

फिर अपना पासवर्ड डालें।

कृपया ध्यान दें " क्या आप वाकई कनेक्ट करना जारी रखना चाहते हैं (हाँ/नहीं)? हाँ". आपको हां दर्ज करना होगा, दर्ज नहीं करना होगा ।

आपको लक्ष्य होस्ट की आरएसए कुंजी को स्रोत होस्ट में रखना होगा /home/user/.ssh/known_hosts इसे लक्ष्य पर चलाकर

ssh-keyscan -t rsa @targethost

ठीक है, यह सिर्फ इसलिए कि दूसरे उबंटू को कुंजी द्वारा कनेक्शन की आवश्यकता होती है और पासवर्ड की नहीं ।

मेरा सुझाव है कि आप उपयोग करें sudo dpkg-reconfigure openssh-server अपने पीसी पर, और फिर इसे ठीक से काम करना चाहिए । यह ओपनएसएसएच के लिए कॉन्फ़िगरेशन को रीसेट कर देगा और डिफ़ॉल्ट पासवर्ड प्रमाणीकरण पर वापस आना चाहिए ।

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

यह एक पुराना धागा है और मैं सिर्फ इस जवाब में भाग गया, मैं इसे हल करने के लिए जो कुछ भी करता हूं उसे जोड़ दूंगा ।

ssh-keygen -f "/home/USER/.ssh/known_hosts" -R HOSTNAME

मैंने सिर्फ उस त्रुटि संदेश को देखा जो उसने मुझ पर फेंका था और उसने मेजबानों की सूची से हटाने के लिए उस कमांड को चलाने के लिए कहा था । उसके बाद मैंने निम्नलिखित किया:

ssh-copy-id HOSTNAME

जब तक मैं सर्वर में एसएसएच करने में सक्षम नहीं था, तब तक मैंने वहां से संकेतों का पालन किया ।

आपको अपनी कुंजी इस तरह से बदलनी चाहिए:आपकी दी गई त्रुटि से पता चलता है कि कौन सी होस्ट-कुंजी ने उदाहरण बदल दिया है: ईसीडीएसए कुंजी को /उपयोगकर्ता/उपयोगकर्ता-नाम/में बंद करना । एसएसएच / ज्ञात_होस्ट:5 कहा 5 वीं कुंजी बदल गई, इसलिए ऐसा करें:

sed -i '5d' ~/.ssh/known_hosts

सूचना: आपको रूट होना चाहिए या सुडो के लिए विशेषाधिकार होना चाहिए ।

क्या आप होस्ट नाम या आईपी-पते का उपयोग करते हैं?

समान नहीं है लेकिन मुझे एक ही त्रुटि मिली लेकिन एक अलग समस्या के कारण: ubuntu - Managing multiple servers behind a firewall with SSH reverse tunnel - Server Fault

यह उबंटू-विशिष्ट मुद्दा नहीं है । कमांड-लाइन से किसी भी` एसएसएच ’ के साथ हो सकता है ।