"হোস্ট কী যাচাইকরণ ব্যর্থ হয়েছে ..." ত্রুটি সহ এসএসএইচ সংযোগ সমস্যা


179

আমি এসএসএইচ মাধ্যমে আমার ল্যানে অন্য উবুন্টু মেশিনের সাথে সংযোগ করতে পারি। ততক্ষণে পিসির উভয়টিতেই আমি ওপেনস্প-সার্ভার ইনস্টল করেছি তবে অন্য উবুন্টু কম্পিউটার থেকে আমি এসএসএইচ এর মাধ্যমে আমার পিসির সাথে সংযোগ করতে পারি না এবং আমি এই ত্রুটি পেয়েছি:

হোস্ট কী যাচাইকরণ ব্যর্থ হয়েছে ...


1
আপনি হোস্টের নাম বা আইপি-ঠিকানা ব্যবহার করেন?
থরবজর্ন রাভন অ্যান্ডারসন

অনুরূপ নয় তবে আমি একই ত্রুটি পেয়েছি তবে একটি ভিন্ন সমস্যার কারণে: সার্ভারফল্ট
কোয়েশনস

এটি কোনও উবুন্টু-নির্দিষ্ট সমস্যা নয়। sshকমান্ড-লাইন থেকে যে কোনও সাথে ঘটতে পারে ।
মার্কহু

উত্তর:


216

"হোস্ট কী যাচাইকরণ ব্যর্থ হয়েছে" এর অর্থ দূরবর্তী হোস্টের হোস্ট কীটি পরিবর্তন করা হয়েছিল।

এসএসএইচ রিমোট হোস্টগুলির হোস্ট কীগুলি সংরক্ষণ করে ~/.ssh/known_hosts। আপনি হয় টেক্সট ফাইলটি ম্যানুয়ালি সম্পাদনা করতে এবং পুরানো কীটি মুছে ফেলতে পারেন (ত্রুটির বার্তায় লাইন নম্বরটি দেখতে পারেন), বা ব্যবহার করতে পারেন

ssh-keygen -R hostname

ম্যান পৃষ্ঠা থেকে :

-আর হোস্টনাম
একটি পরিচিত_হোস্ট ফাইল থেকে হোস্টনেম সম্পর্কিত সমস্ত কী সরিয়ে দেয়। এই বিকল্পটি হ্যাশড হোস্টগুলি মুছতে কার্যকর।

(যা আমি উত্তর থেকে শিখেছি এসএসএইচের পরিচিত_হোস্ট ফাইল থেকে কোনও নির্দিষ্ট হোস্ট কী সরিয়ে ফেলা সম্ভব? ) ফাইলটি


4
এর অর্থ এইও হতে পারে যে আপনার কাছে কেবল দূরবর্তী হোস্টের হোস্ট কী নেই। উদাহরণস্বরূপ, আমি যদি rm ~/.ssh/*তখন ssh -o BatchMode=yes root@somewhereঅন্য কিছু না হয় তবে আমি Host key verification failed. গুরুত্বপূর্ণ হব যদি আপনি সর্বদা ইন্টারেক্টিভ না হন তবে একই ত্রুটির সাথে লিখিত স্ক্রিপ্টগুলির জন্য প্রাসঙ্গিক।
রন বার্ক

আশ্চর্যজনকভাবে, ssh-keygen -R example.net:7999ফলন Host example.net:7999 not found in known_hosts
অ্যালেক্স

আমি known_hostsআবার ফাইল এবং এসএসএস সরিয়েছি । এটা কাজ করেছে.
প্যারিসাএন

ফাইলটি ~/.ssh/known_hostsঅপঠনযোগ্য
জোও পিমেন্টেল ফেরেরিরা

128

আপনি যদি এমন কোনও দূরবর্তী / স্ক্রিপ্টিং পরিস্থিতিতে ছুটে চলেছেন যেখানে প্রম্পট-টু-অ্যাড-হোস্টকি-তে আপনার ইন্টারঅ্যাক্টিভ অ্যাক্সেসের অভাব রয়েছে, তবে এটির মতো কাজ করুন:

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

সতর্কতা: স্থায়ীভাবে পরিচিত হোস্টগুলির তালিকায় 'काहीतरी.example.com, 10.11.12.13' (আরএসএ) যুক্ত হয়েছে।


6
+1, এটি একটি কুরুচিপূর্ণ সমাধান, তবে ডায়ামিক আইপ-সংযুক্ত ডিভাইসগুলির সাথে কাজ করে এমন স্বয়ংক্রিয় পর্যবেক্ষণ প্রক্রিয়ার কিছু ক্ষেত্রে, এটি একটি সহজ এবং গ্রহণযোগ্য সমাধান।
নিনসু

11
+1 উদাহরণস্বরূপ, জেনকিনস ফাঁসি কার্যকর করার জন্য এটি একটি ভাল সমাধান। ধন্যবাদ
লবো

5
@ লাবো আরও সম্মত হতে পারে না, আমি এটি sh """ssh -o StrictHostKeyChecking=No ec2-user@someIpAddress-e2e sudo service tomcat restart"""
জেনকিন্সের

আমার জীবন সংরক্ষিত. লাইফ সেভার সলিউশন।
ব্যবহারকারী 1735921

10

এছাড়াও কখনও কখনও এমন পরিস্থিতি তৈরি হয় যখন আপনি সিরিয়াল কনসোলটিতে কাজ করছেন, তারপরে ভার্বোজ মোডে উপরের কমান্ডটি পরীক্ষা -vকরলে দেখা যাবে যে আপনার /dev/ttyঅস্তিত্ব নেই, যদিও এটি রয়েছে।

ssh -v user@hostname

উপরে যদি শুধু অপসারণ /dev/ttyএবং একটি সিমবলিক লিঙ্ক তৈরি /dev/ttyS0করতে /dev/tty

rm /dev/tty
ln -s /dev/ttyS0 /dev/tty

বিকল্প হিসাবে, id_rsa.pubদূরবর্তী অবস্থানটিতে যুক্ত করুন, সুতরাং পাসওয়ার্ড প্রম্পট করা হবে না এবং আপনি লগইন অ্যাক্সেস পান।


6
-V প্যারামিটার ব্যবহার করার পরামর্শ দেওয়ার জন্য +1; ssh সমস্যা ডিবাগ করার সময় এটি অনেক সাহায্য করতে পারে।
ড্যানিয়েল কুলম্যান

8

আমার ক্ষেত্রে, এটি একটি ওদেব সমস্যার কারণে হয়েছিল - কোনও /dev/ttyডিভাইস নোড ছিল না । আমার জন্য সমাধানটি ছিল কেবল:

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

6

টার্মিনালে:

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

আমি পেয়েছি command-line line 0: Bad yes/no/ask argument.কারণ আপনি যুক্তি হিসাবে 'না' এর পরিবর্তে 'না' ব্যবহার করেছেনStrictHostKeyChecking
এক্সেল ব্রেগনসবো

3

ঠিক আছে, এটি কেবল কারণ দ্বিতীয় উবুন্টুটির পাসওয়ার্ড নয়, কী দ্বারা সংযোগ প্রয়োজন।

আমি আপনাকে sudo dpkg-reconfigure openssh-serverআপনার পিসিতে ব্যবহার করার পরামর্শ দিই এবং তারপরে এটি সঠিকভাবে কাজ করা উচিত। এটি ওপেনশের জন্য কনফিগারেশনটি পুনরায় সেট করবে এবং এটি একটি ডিফল্ট পাসওয়ার্ড প্রমাণীকরণে ফিরে আসবে।

দ্বিতীয় সম্ভাবনা হ'ল আপনার পিসিতে আপনার অন্যান্য উবুন্টুর জন্য ইতিমধ্যে একটি কী রয়েছে এবং এটি আর স্বীকৃত নয় বলে পরিবর্তিত হয়েছে। এই ক্ষেত্রে, আপনাকে .ssh/authorized_keysআপনার উবুন্টু সনাক্তকারী সমস্যাযুক্ত লাইনটি সরাতে ফাইলটি সম্পাদনা করতে হবে ।


3

এটি একটি পুরানো থ্রেড এবং আমি এই উত্তরটি জুড়েই ছুটে এসেছি, এটি সমাধান করার জন্য আমি যা করেছি তা কেবল যুক্ত করব।

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

আমি কেবল ত্রুটি বার্তাটি দেখেছিলাম যা এটি আমার দিকে ছুঁড়েছে এবং এটি হোস্টের তালিকা থেকে অপসারণ করার জন্য এই আদেশটি চালানোর জন্য বলেছে। এর পরে আমি নিম্নলিখিতগুলি করেছি:

ssh-copy-id HOSTNAME

আমি সার্ভারে স্ল্যাশ করতে সক্ষম না হওয়া পর্যন্ত আমি সেখান থেকে অনুরোধগুলি অনুসরণ করেছি।


এই আদেশ হিসাবে আমি উবুন্টুতে পরামর্শ হিসাবে পাচ্ছি 12.4।
MaNKuR

2

এর অর্থ আপনার দূরবর্তী হোস্ট কীটি পরিবর্তিত হয়েছিল (হোস্টের পাসওয়ার্ড পরিবর্তন হতে পারে),

আপনার টার্মিনালটি এই কমান্ডটি রুট ব্যবহারকারী হিসাবে কার্যকর করার পরামর্শ দিয়েছে

$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231

আপনাকে আপনার পিসি / সার্ভারের হোস্ট তালিকা থেকে সেই হোস্টের নামটি সরিয়ে ফেলতে হবে। কমান্ডের পরামর্শ দেওয়া হয়েছে এবং মূল ব্যবহারকারী হিসাবে কার্যকর করুন ute

$ sudo su                                                            // Login as a root user

$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231   // Terminal suggested command execute here
Host [www.website.net]:4231 found: line 16 type ECDSA
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

$ exit                                                               // Exist from root user

$ sudo ssh root@www.website.net -p 4231                              // Try again

আশা করি এটি কাজ করে।


1

আপনার কীটি এই উপায়ে পরিবর্তন করা উচিত: আপনার প্রদত্ত ত্রুটি থেকে কোন হোস্ট-কীটি পরিবর্তিত হয়েছে তা আবিষ্কার করুন: /User/user-name/.ssh/ज्ञ_hosts:5 এ ইসিডিএসএ কী প্রদান করা said ম চাবি পরিবর্তিত হয়েছে, তাই এটি করুন:

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

বিজ্ঞপ্তি: আপনার অবশ্যই মূল হতে হবে বা sudo এর জন্য বিশেষাধিকার থাকতে হবে।


না, যদি না আপনি এটি অন্য কারও জন্য করছেন, এটির জন্য মূল বা সুডোর প্রয়োজন হয় না। আপনি নিজের হোম ডিরেক্টরিতে ফাইল সম্পাদনা করছেন। দ্বিতীয়: কমান্ডটি কাজ করার জন্য এটির জন্য GNU সেড প্রয়োজন।
টেকাফ

হতে পারে আপনি ঠিক বলেছেন তবে আমি ম্যাক ওএসএক্স থেকে উবুন্টু-সার্ভারে এসএসএস করার চেষ্টা করেছি এবং আমাকে এটি করতে হবে। যাইহোক আপনার মন্তব্যের জন্য আপনাকে ধন্যবাদ।
আমির.এজি

1

আপনাকে লক্ষ্য হোস্টের আরএসএ কীটি লক্ষ্যমাত্রায় /home/user/.ssh/known_hostsচালিয়ে উত্স হোস্টে রাখতে হবে

ssh-keyscan -t rsa @targethost

1

এসএসএস আপনি সংযোগ চালিয়ে যেতে চান তা নিশ্চিত করার পরে আপনাকে কেবল "হ্যাঁ" প্রবেশ করতে হবে।

বেলো পছন্দ।

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

তারপরে আপনার পাসওয়ার্ড লিখুন।

দয়া করে মনোযোগ দিন "আপনি কি সংযোগ চালিয়ে যাওয়ার বিষয়ে নিশ্চিত (হ্যাঁ / না)? হ্যাঁ "। আপনাকে অবশ্যই হ্যাঁ প্রবেশ করতে হবে, প্রবেশ করতে হবে না।


1

হোস্ট কী পরীক্ষায় কঠোরভাবে অক্ষম করা ছাড়াও, আপনি টাইপ করে সংযোগও করতে পারেন:

ssh -o LogLevel=quiet -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no <username@target_machine_ip_or_domain_name>

0

pico ~/.ssh/known_hosts এবং সমস্ত লাইন মুছুন, কেবল পুনরায় সংযোগের পরে এবং আপনি একটি নতুন কী পাবেন।


6
এটি একটি বিপজ্জনক সমাধান, কারণ আপনি আপনার সমস্ত হোস্ট কী সরিয়ে ফেলবেন। গৃহীত সমাধান, ssh-keygen -R hostnameভাল।
মিসানফোর্ড

0

আমার সমাধান এই ব্লগ পোস্ট থেকে আসে: এসএসএইচ সুরক্ষিত শেল ক্লায়েন্টের জন্য অ্যালগরিদম আলোচনার ব্যর্থতা

আপনাকে ফাইলটি নিম্নরূপে পরিবর্তন করতে হবে:

sudo nano /etc/ssh/sshd_config

এবং তারপরে নিম্নলিখিতগুলি যুক্ত করুন:

# Ciphers
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,arcfour
KexAlgorithms diffie-hellman-group1-sha1

মূলত আপনি বিভিন্ন সমাধানের চেষ্টা করেছেন যতক্ষণ না আপনি এমন একটি খুঁজে পান যা আপনার সমস্যার সমাধান করতে পারে। যদি উপরের সমাধানগুলি কাজ না করে তবে দয়া করে এটি ব্যবহার করে দেখুন। যদি এটির পাশাপাশি কাজ করে না, দয়া করে অন্যদের চেষ্টা করুন।


0

কেবলমাত্র "sudo vi /var/root/.ssh/علوم_hosts" করুন এবং লাইনটি সরিয়ে ফেলুন, এতে যে হোস্ট আপনার সাথে সংযোগ স্থাপন করতে এবং আবার সংযোগ করতে চাইছেন তার জন্য একটি কী রয়েছে holds

আমি আপনার নির্দিষ্ট পরিস্থিতি সম্পর্কে জানি না, তবে সম্ভবত এই ত্রুটিটি এই বার্তার সাথে এসেছে:

my_mac:~ oivanche$ sudo ssh pi@192.168.0.45
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:sx1Z4xyGY9venBP6dIHAoBj0VhDOo7TUVCE2xWXpzQk.
Please contact your system administrator.
Add correct host key in /var/root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /var/root/.ssh/known_hosts:74
ECDSA host key for 192.168.0.45 has changed and you have requested strict checking.
Host key verification failed.

আপনি যদি লগটি আরও মনোযোগ সহকারে পড়েন তবে আপনি দেখতে পাবেন যে কোনও হোস্টের কাছ থেকে আপনার কাছে থাকা চাবিটি আপনার কাছে ইতিমধ্যে থাকা একটি কী এর সাথে বিরোধ করছে this এক্ষেত্রে এটি পরিচিত_হোস্ট ফাইলের 74৪ নং লাইনে রয়েছে (ভার্জ / এ / ইনসিডিএসএ কী উপস্থাপন করছে) রুট / .ssh / known_hosts: 74)। পরিচিত_হোস্টগুলি থেকে লাইনটি সরান, পরিবর্তনগুলি সংরক্ষণ করুন এবং পুনরায় সংযুক্ত করুন।


-1
chmod 666 /dev/tty 

এটি আর একটি tty সমাধান - কখনও কখনও, এই ডিভাইস ফাইলে ভুল অনুমতি আছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.