خطای احراز هویت Host key verification failed
پرینت- 3
خطای Host key verification failed چیست و چگونه رفع میشود؟
این خطا زمانی رخ میدهد که کلید میزبان (Host Key) سروری که به آن متصل میشوید، با کلید ذخیرهشده در سیستم شما مطابقت ندارد. دلایل معمول این مشکل عبارتند از:
- تغییر کلید سرور (مثلاً بعد از نصب مجدد یا تغییر تنظیمات SSH)
- احتمال حمله مرد میانی (MITM)
- وجود کلید قدیمی یا ناسازگار در فایل known_hosts
راهکارهای رفع خطا:
- حذف کلید قدیمی از فایل known\_hosts به صورت امن
اگر مطمئن هستید تغییر کلید سرور بهدلیل بهروزرسانی یا تغییرات مشروع است، کلید قبلی را با دستور زیر حذف کنید:
bash
ssh-keygen -R آدرس-سرور
مثال:
bash
ssh-keygen -R 192.168.1.10
ssh-keygen -R example.com
سپس دوباره تلاش کنید به سرور وصل شوید:
bash
ssh user@server
- حذف دستی کلید قدیمی از known\_hosts
اگر ترجیح میدهید مستقیم فایل را ویرایش کنید، مراحل زیر را دنبال کنید:
فایل known_hosts را باز کنید:
bash
nano ~/.ssh/known_hosts
- خط مربوط به سرور مورد نظر را پیدا و حذف کنید.
- فایل را ذخیره کرده و خارج شوید.
- دوباره تلاش کنید به سرور وصل شوید.
- غیرفعال کردن موقت بررسی کلید میزبان (فقط در مواقع اضطراری)
اگر اطمینان دارید که اتصال امن است و میخواهید سریعاً وارد شوید، میتوانید بررسی کلید میزبان را به شکل موقت غیرفعال کنید:
bash
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@server
- این روش امنیت اتصال را کاهش میدهد و باید فقط در شرایط اضطراری و موقتی استفاده شود.
- بررسی و تایید کلید جدید سرور برای امنیت بیشتر
اگر مطمئن نیستید کلید جدید سرور معتبر است یا خیر، بهتر است کلید فعلی را با کلید اصلی سرور مقایسه کنید. برای دریافت کلید سرور از این دستور استفاده کنید:
bash
ssh-keyscan -H آدرس-سرور
سپس این کلید را با کلیدهای موجود در سرور مثلاً در مسیر /etc/ssh/ssh_host__key.pub مقایسه کنید.
- اگر سرور تغییر کرده، کلید قدیمی را حذف کنید.
- اگر کلید جدید مشکوک است، حتماً با مدیر سرور تماس بگیرید.
- در مواقع اضطراری و موقت، میتوانید بررسی کلید را غیرفعال کنید ولی توصیه نمیشود.