सवाल ECDSA होस्ट कुंजी के बारे में चेतावनी कैसे ठीक करें


मैं उबंटू सर्वर पर पासवर्ड-कम एसएसएच सेट अप करने की कोशिश कर रहा हूं ssh-copy-id myuser@myserver, लेकिन मुझे त्रुटि मिल रही है:

चेतावनी: 'myserver' के लिए ECDSA होस्ट कुंजी आईपी पते '1 9 2.168.1.123' के लिए कुंजी से अलग है

इसका कारण क्या है, और मैं इसे कैसे ठीक करूं? मैंने हटाने की कोशिश की .ssh रिमोट मशीन पर निर्देशिका, और चल रहा है ssh-keygen -R "myserver" स्थानीय रूप से, लेकिन यह त्रुटि को हल नहीं करता है।


218
2018-05-05 19:05


मूल


मेरे मामले में, मैं डोमेन (आईपी) डोमेन के साथ बांधता हूं, फिर The ECDSA host key for server has changed। मेरा तरीका डोमेन के बारे में संबंधित कैश स्ट्रिंग को हटा रहा है ~/.ssh/known_hosts। फिर एसएसएच काम करता है। - Ninja


जवाब:


के लिए कैश कुंजी हटा दें 192.168.1.123 स्थानीय मशीन पर:

ssh-keygen -R 192.168.1.123

318
2018-05-05 20:20



घर से एसएसएचइंग करते समय काम पर नए स्थापित डेबियन सर्वर पर मेरे लिए काम नहीं किया। इसके अलावा, जवाब सुंदर terse है। - Chris K
/home/wf/.ssh/known_hosts अद्यतन। मूल सामग्री /home/wf/.ssh/known_hosts.old के रूप में बरकरार रखी गई "चेतावनी: ज्ञात मेजबानों की सूची में आईपी पते 'x.x.x.x' के लिए ईसीडीएसए मेजबान कुंजी को स्थायी रूप से जोड़ा गया।" प्रदर्शित किया गया है। और फिर यह काम करता प्रतीत होता है - Wolfgang Fahl
आप इसे हटाने के बजाय कुंजी अपडेट कर सकते हैं। उपयोग ssh-keyscan -t ecdsa my.server.domain >> ~/.ssh/known_hosts उसके बाद आपको होस्ट से कनेक्ट करने पर पहली कुंजी की जांच करने की आवश्यकता नहीं है। - Alex
जिनके लिए यह काम करने में सफल नहीं है: मैंने एक ही आईपी के गुणक घटनाएं पंजीकृत की हैं: 1 / कहा गया आईपी पता (xx.xx.xx.xx), डोमेन (tomsihap.fr), प्रदाता के दिए गए वीपीएस सर्वर पता (vpsxxx.ovh.net)। इनमें से प्रत्येक के लिए ssh-keygen -R काम किया। - tomsihap
मेरे लिए काम किया, लेकिन भ्रम हो सकता है कि इस आदेश को किस होस्ट को चलाया जाना चाहिए? जवाब उस व्यक्ति से है जो त्रुटि प्रदर्शित करता है। दूसरा प्रश्न और उत्तर अधिक स्पष्ट है, लेकिन बस मामले में: एसएसएच-कीजेन-आर को कौन सा पता पास करना है? पता जो त्रुटि कथन में आंकड़े है। - Russ Bateman


मेरे मामले में ssh-keygen -R ... चेतावनी ठीक नहीं किया। मेरे पास इस तरह की अतिरिक्त जानकारी थी:

Offending key for IP in /home/myuser/.ssh/known_hosts:8
Matching host key in /home/myuser/.ssh/known_hosts:24

मैं बस मैन्युअल रूप से संपादित किया ~/.ssh/known_hosts और हटाई गई लाइन 8 ("अपमानजनक कुंजी")। मैंने दोबारा जुड़ने की कोशिश की, मेजबान को स्थायी रूप से जोड़ा गया, और उसके बाद सबकुछ ठीक था!


42
2018-03-11 18:52



एक जादू की तरह काम करता है। इसे एक पंक्ति में ठीक कर सकते हैं sed -e '8d' /home/myuser/.ssh/known_hosts, लाइन नंबर की जगह 8 और आपके सिस्टम पर प्रदर्शित लोगों के साथ फ़ाइल नाम। - Alex P. Miller


मैं अपने लैन कंप्यूटर और मेरे दो वेबहोस्टिंग खातों के बीच बहुत सारी चीजें करता हूं, इसलिए मैंने एसएसएच के साथ सभी प्रकार की बाधाओं और सिरों को हल किया है, जिसमें प्रमाणीकरण समस्याओं का उपयोग कर ssh -v यह देखने के लिए कि कहां और क्या गलत हुआ।

इस मुद्दे को हल करने और जवाब से खुश होने के बाद, मैं वास्तव में जानना चाहता था कि क्यों "खुद" ...

मेरे मामले के लिए ट्रिगर है: काम पर नए सर्वर ओएस स्थापित और openssh-server पैकेज स्थापित करने पर, होस्ट के सर्वर पर होस्ट कुंजी का एक नया सेट जेनरेट किया गया था। पहले, मेरे सभी सर्वर ओएस उबंटू थे और इस बार यह डेबियन में बदल गया (और मुझे संदेह है कि अनुमतियों में एक महत्वपूर्ण अंतर है)।

जब सभी ओएस उबंटू थे और मैं पहले एसएसएच पर सर्वर के ओएस को पुनर्स्थापित करता हूं, तो मुझे इस प्रकार की चेतावनी मिलती है, जिसे मैं ऊपर चुप चेतावनी पसंद करता हूं!

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
06:ea:f1:f8:db:75:5c:0c:af:15:d7:99:2d:ef:08:2a.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending key in /home/user/.ssh/known_hosts:4
RSA host key for domain.com has changed and you have requested strict checking.
Host key verification failed.

तब मैं खुलता हूँ ~ / .Ssh / known_hosts एसएसएच शुरू करने वाले कंप्यूटर पर, उस लाइन को हटाएं, पुनः कनेक्ट करें और ऐसा होता है:

chris@home ~ $ ssh work
The authenticity of host '[work]:11122 ([99.85.243.208]:11122)' can't be established.
ECDSA key fingerprint is 56:6d:13:be:fe:a0:29:ca:53:da:23:d6:1d:36:dd:c5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[work]:11122 ([99.85.243.208]:11122)' (ECDSA) to the list of known hosts.
Linux rock 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64

इसके बारे में थोड़ा सा: 11122 पोर्ट नंबर है जिसे मैं फ़ायरवॉल से एसएसएच रूट करता हूं

मैंने पूर्व उबंटू सर्वर से बैकअप की जांच की और मेरे नए डेबियन इंस्टॉलेशन के खिलाफ diff'd:

Ubuntu:                                            Debian:
# Package generated configuration file             # Package generated configuration file
# See the sshd(8) manpage for details              # See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for      # What ports, IPs and protocols we listen for
Port 22                                            Port 22
# Use these options to restrict which interface    # Use these options to restrict which interfaces
#ListenAddress ::                                  #ListenAddress ::
#ListenAddress 0.0.0.0                             #ListenAddress 0.0.0.0
Protocol 2                                         Protocol 2
# HostKeys for protocol version 2                  # HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key                  HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key                  HostKey /etc/ssh/ssh_host_dsa_key
------------------------------------------------   HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security    #Privilege Separation is turned on for security
UsePrivilegeSeparation yes                         UsePrivilegeSeparation yes

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

मैंने एक पढ़ा सुरक्षा। एसई / ए ecdsa पर और पहले से ही उस लाइन को हटा दिया है sshd_config मेरा नया डेबियन सर्वर। (और भाग गया service ssh restart)


14
2018-01-16 08:12



अच्छा साइड-बाय-साइड तुलना ब्लॉक के लिए +1। क्या आप एक यूआरएल क्लियरिंग "उबंटू की चट्टान-ठोस लिनक्स ओएस से दूर हो सकते हैं" का मतलब है? - bgoodr
@bgoodr यह मेरी राय है और पूरी तरह से पिछले कुछ वर्षों में कई बार अपने स्वयं के RAID फाइलरवर स्थापित करने पर आधारित है। : / उत्तर के लिए बकवास, लेकिन googling शुरू करें ubuntu debian server और आप देखेंगे कि मेरा क्या मतलब है। - Chris K
@ क्रिसस्क आप, महोदय, एक मालिक हैं। विस्तृत, अभी तक संक्षिप्त, उत्तर के लिए धन्यवाद। - sargas


ssh-keygen -f "/root/.ssh/known_hosts" -R 1 9 2.168.1.123

यह मौजूदा कुंजी को known_hosts.old के तहत प्रतिस्थापित करना चाहिए और एक नया बनाना चाहिए। यह समाधान उसी परिदृश्य में मेरे लिए काम करता था


5
2018-05-14 18:16





संकेत हर बार होता है क्योंकि डायनामिक एड्रेसिंग का उपयोग करते समय आईपी पते हर समय बदलते हैं। स्थिर आईपी का उपयोग करने का प्रयास करें ताकि आपको केवल एक बार कुंजी जोड़नी पड़े।


4
2018-01-16 09:06



अच्छा मुद्दा, क्या मुझे याद आया कि किसी ने गतिशील ips का उल्लेख किया था? - Chris K


क्या आप कनेक्ट करने के लिए एक ही उपयोगकर्ता का उपयोग कर रहे हैं?

यदि आप उपयोगकर्ता जैसे स्थानीय पीसी में लॉग इन हैं जॉन और सर्वर से जुड़ा हुआ है बी उपयोगकर्ता की तरह एडॉल्फ @ बी और सब ठीक है, इसका मतलब यह नहीं है कि अगर आप स्थानीय पीसी जैसे उपयोगकर्ता के लिए लॉग इन हैं तो सब कुछ ठीक है जेन और सर्वर से कनेक्ट कर रहा है बी उपयोगकर्ता की तरह एडॉल्फ @ बी

यदि आप सर्वर बी पर पीसी से उपयोगकर्ता बेडा के रूप में लॉगिन करना चाहते हैं  पासवर्ड के बिना, पीसी से सभी इस कमांड को आजमाएं :

ssh-keygen -t rsa

यह आदेश कुंजी उत्पन्न करता है और फ़ाइल में कुंजी संग्रहीत करता है। कृपया जाएँ पदबंध खाली।

ssh Beda@B mkdir -p .ssh

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

cd ~/.ssh

यह आदेश निर्देशिका को आपके उपयोगकर्ता होम निर्देशिका में बदलता है ./ssh।

cat id_rsa.pub | ssh Beda@B 'cat >> .ssh/authorized_keys'

यह आदेश फ़ाइल प्रिंट करता है id_rsa.pub (आपकी सार्वजनिक कुंजी) में authorized_keys सर्वर पर

महत्वपूर्ण: बेडा उस सर्वर पर आपका उपयोगकर्ता नाम है जिसे आप कनेक्ट कर रहे हैं, बी आपका सर्वर आईपी है।

अब, आप सर्वर बी से पासवर्ड या पासफ्रेज़ के बिना कनेक्ट कर सकते हैं:

ssh Beda@B

2
2017-10-21 09:17



या बस ssh-copy-id का उपयोग एक अधिकृत_की फ़ाइल को अपनी id_rsa.pub कुंजी के साथ सभी अतिरिक्त परेशानी के बिना पॉप्युलेट करने के लिए करें। - BlakBat


सूत्र यहाँ मदद कर सकता है।

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


1
2017-12-20 16:47





प्रश्न: यह क्या कारण है, ...?

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

  • क्या MyServer पर sshd ईसीडीएसए कुंजी का उपयोग शुरू करते हैं, तो यह एक नया कुंजी प्रकार है?
  • क्या MyServer हाल ही में पुनः स्थापित किया गया था?
  • हाल ही में माइस्सेवर पर sshd था फिर से insalled तो एक नई एसएसएच मेजबान कुंजी उत्पन्न किया गया था?
  • क्या किसी ने sshd होस्ट कुंजी को पुन: उत्पन्न या प्रतिस्थापित किया?
  • क्या MyServer का आईपी पता बदल गया है ताकि एक अलग मेजबान उस आईपी पते का जवाब दे रहा हो?

प्रश्न: ... और मैं इसे कैसे ठीक करूं?

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


1
2017-08-07 15:42



अच्छी सलाह है, लेकिन वास्तव में सवाल का जवाब नहीं देता है। सवाल का जवाब देने का भी प्रयास नहीं करता है। - boatcoder