رفع خطای Host Key Verification Failed در لینوکس
در عصر دیجیتالی امروز، کاربران سیستمهای لینوکس هنگام استفاده از پروتکل SSH برای ایجاد ارتباطات امن، گاهی با خطاهایی مواجه میشوند که میتواند تجربه کاربری را دشوار سازد. یکی از این پیامها، خطای Host Key Verification Failed است و معمولاً زمانی نمایان میشود که تغییری در کلیدهای SSH هاست مقصد رخ داده باشد.
این خطا میتواند برای کاربران جدید و حتی کسانی که تجربه بیشتری دارند، به یک چالش تبدیل شود. با اینحال، داشتن دانش کافی و دنبال کردن مراحل مناسب، میتواند سبب رفع خطای Host Key Verification Failed در لینوکس شود.
منظور از خطای Host Key Verification Failed در لینوکس چیست؟
پیغام خطای “Host Key Verification Failed” که در محیط سیستمعامل لینوکس ظاهر میشود، یک هشدار امنیتی است که توسط پروتکل ارتباطی SSH صادر میگردد. این پیغام به کاربر اطلاع میدهد که تلاش برای تایید اصالت سرور میزبان با استفاده از کلیدهای امنیتی موجود در فایل known_hosts با شکست مواجه شده است.
این مسئله اغلب در شرایطی رخ میدهد که کلید عمومی ثبتشده برای یک میزبان در فایل مذکور با کلید عمومی کنونی آن سرور همخوانی نداشته باشد، که میتواند ناشی از تغییرات امنیتی در سرور یا اشتباه در ذخیرهسازی کلیدها باشد.
درعینحال اگر میخواهید بدانید که لینوکس چیست؟ و اطلاعات بیشتری در این خصوص بهدست آورید، میتوانید به صفحه مربوط به آن در بلاگ هاست ایران مراجعه کنید.
دلایل رخ دادن ارور Host Key Verification Failed در لینوکس
دلایل اصلی بروز خطای Host Key Verification Failed بهشرح زیر هستند:
- تغییر در کلیدهای SSH سرور: اگر سرور میزبان کلیدهای SSH خود را تغییر دهد (مثلاً بهدلیل تغییرات امنیتی یا نصب مجدد سیستمعامل)، کلید عمومی ثبتشده در فایل known_hosts دیگر با کلید جدید مطابقت نخواهد داشت.
- اولین اتصال به سرور جدید: هنگامی که برای اولین بار به یک سرور جدید متصل میشوید، کلید عمومی آن سرور هنوز در فایل known_hosts ذخیره نشده است و این مورد میتواند منجر به این خطا شود.
- حملات Man-in-the-Middle) MitM): این خطا میتواند یک هشدار جدی باشد که نشاندهنده تلاش برای حمله MitM است، جاییکه یک مهاجم سعی در جعل هویت سرور میزبان را دارد.
- مشکلات در فایل known_hosts: خرابی یا فساد فایل known_hosts میتواند باعث بروز این خطا شود.
- تداخل نسخههای SSH: اگر نسخههای مختلف SSH بین کلاینت و سرور استفاده شوند، ممکن است در تأیید کلیدها مشکلاتی پیش آید.
نکته مهم: همیشه قبل از انجام تغییرات در فایل known_hosts، یک نسخه پشتیبان تهیه کنید تا در صورت بروز مشکل، بتوانید به حالت قبلی بازگردید.
رفع خطای Host Key Verification Failed در لینوکس به چه صورت انجام میشود؟
در دنیای فناوری اطلاعات و امنیت شبکه، مواجهه با خطاهای مختلف هنگام برقراری ارتباطات امن از طریق SSH در لینوکس امری رایج است. یکی از خطاهایی که کاربران ممکن است با آن مواجه شوند، ارور Host Key Verification Failed است که میتواند برای کاربران تازهکار و حتی حرفهای نیز چالشبرانگیز باشد.
این خطا زمانی رخ میدهد که کلید میزبان ذخیرهشده برای هاستی که قصد اتصال به آن را دارید تغییر کرده باشد. این تغییر ممکن است بهدلیل نصب مجدد سیستمعامل روی سرور، تغییر آدرس IP، یا بهروزرسانیهای امنیتی رخ دهد. برای رفع خطای Host Key Verification Failed در لینوکس با هاست ایران، میتوانید از روشهای زیر استفاده کنید:
روش اول: حذف ورودی از فایل known_hosts
اگر سرور مقصد تغییر کرده است (مثلاً پس از نصب مجدد سیستمعامل)، کلیدهای SSH قبلی دیگر معتبر نخواهند بود. برای حذف ورودی مربوط به سرور از فایل ~/.ssh/known_hosts، میتوانید از دستور sed یا vim استفاده کنید.
بهطور مثال ابتدا دستور echo -n > ~/.ssh/known_hosts را وارد کنید و در ادامه دستور sed -i ‘/hostname-or-IP /d’ ~/.ssh/known_hosts را اجرا نمایید تا hostname با نام یا آدرس IP سرور جایگزین شود.
روش دوم: استفاده از دستور ssh-keygen
دستور ssh-keygen -R [hostname-or-IP] بهصورت خودکار ورودی مربوط به هاست مقصد را از فایل known_hosts حذف میکند. همچنین، در صورتیکه دستور ذکر شده عمل نکند، میتوانید از دستور vi ~/.ssh/known_hostsvi ~/.ssh/known_hosts استفاده کنید. این روش سریع و آسان است و نیازی به ویرایش دستی فایل ندارد.
روش سوم: غیرفعال کردن گزینه Strict Host Key Checking
با استفاده از دستور ssh -o StrictHostKeyChecking=no user@hostname میتوانید بررسی کلید هاست را هنگام اتصال به سرور غیرفعال کنید. این روش برای مواقعی که نیاز به اتصال موقت به سرور دارید و امنیت کمتری موردنیاز است، مناسب خواهد بود.
روش چهارم: بررسی و تایید کلیدهای جدید
هنگامیکه با پیام خطا مواجه میشوید، میتوانید کلید عمومی جدید را با کلیدهای موجود در known_hosts مقایسه کنید.
اگر کلید جدید معتبر باشد، میتوانید آن را بهصورت دستی به فایل known_hosts اضافه کنید.
همچنین، لازم بهذکر است که تایید هویت سرور میزبان بسیار مهم است تا از امنیت ارتباطات خود اطمینان حاصل کنید. بنابراین، اطمینان حاصل نمایید که از منابع معتبر برای دریافت کلیدهای امنیتی استفاده میکنید.
البته توجه داشته باشید که غیرفعال کردن بررسی کلید هاست میتواند امنیت اتصال SSH شما را کاهش دهد. بنابراین، استفاده از این روش تنها در مواردی که اطمینان کامل از امنیت سرور مقصد دارید، توصیه میشود. پس از رفع مشکل نیز مهم است که تنظیمات امنیتی را به حالت اولیه بازگردانید تا از امنیت اتصالات بعدی اطمینان حاصل کنید.
رفع خطای Host Key Verification Failed در ویندوز
برطرف کردن خطای “Host Key Verification Failed” هنگام استفاده از SSH در ویندوز ممکن است کمی دشوار باشد؛ چرا که مکان فایل known_hosts میتواند در مکانهای مختلفی همچون موارد زیر باشد:
- \users\~\AppData\Roaming\_ssh
- \c:\cygwin64\home\bob\.ssh
- محل ذخیرهسازی کلیدها توسط نرمافزار کلاینت SSH
- c:\Users\username\.ssh\
راهحل آسان این است که در نوار جستجوی ویندوز، عبارت known_hosts را جستجو کرده تا مکان دقیق آن را پیدا کنید. در ادامه باید پس از یافتن فایل مربوط، خط کد موردنظر به سرور را که معمولاً با شمارهای مشخص میشود، پیدا کنید. سپس آن خط کد را حذف کنید و فایل را ذخیره نمایید. درنهایت، دوباره تلاش کنید تا با استفاده از SSH به سرور متصل شوید.
اگر فایل در مسیر پیشفرض ویندوز جدیدتر قرار دارد، میتوانید با وارد کردن دستور زیر در پنجره RUN، مستقیماً به پوشه مربوطه دسترسی پیدا کنید:
c:\Users\%username%\.ssh
همچنین، پس از برقراری دوباره ارتباط، فایل known_hosts شما بهطور خودکار با کلید جدید سرور بهروزرسانی میشود. در هر بار تلاش برای اتصال مجدد، سیستم SSH اعلام میکند که با کلیدی ناشناختهای روبرو است و از شما سوال میکند که آیا مایل به ادامه اتصال و ثبت این کلید جدید هستید یا خیر! با تایید شما، این مسئله حل شده و اتصال بدون مانع ادامه خواهد یافت.
جمعبندی
برای رفع خطای Host Key Verification Failed در لینوکس، درک دقیق از پروتکل SSH و مدیریت کلیدهای میزبان ضروری است. این خطا زمانی رخ میدهد که کلید میزبان ذخیرهشده بهدلیل تغییراتی همچون نصب مجدد سیستمعامل یا تغییر آدرس IP برای یک هاست تغییر کرده باشد. برای رفع این خطا، کاربر باید کلید قدیمی را از فایل known_hosts حذف کرده و با اتصال مجدد به سرور، کلید جدید را تایید کند.
این فرآیند نهتنها خطا را برطرف میکند بلکه امنیت اتصال SSH را نیز حفظ خواهد کرد. با دنبال کردن دستورالعملهای مناسب، میتوان این خطا را بهسرعت و بهراحتی برطرف کرد، و اطمینان حاصل نمود که اتصالات بعدی امن و بدون مشکل خواهند بود.
لازم بهذکر است که هاست ایران، یکی از ارائهدهندگان برجسته خدمات میزبانی وب در ایران بهشمار میآید که هاست لینوکس را با تنوع بالا و امکانات گسترده به کاربران عرضه میکند. این سرویسها، که در دیتاسنترهای داخلی و خارجی مستقر هستند، از سیستمعامل پایدار لینوکس بهره میبرند و انتخابی ایدهآل برای میزبانی وبسایتهای مبتنی بر این فناوریها محسوب میشوند.
سوالات متداول
- آیا خطا Host Key Verification Failed میتواند نشانهای از یک حمله امنیتی باشد؟
بله، اگر تغییر کلید میزبان بدون اطلاع قبلی رخ داده باشد، ممکن است نشانهای از حمله “Man-in-the-Middle” باشد.
- چرا خطای Host Key Verification Failed رخ میدهد؟
خطا زمانی رخ میدهد که کلید میزبان ذخیرهشده برای هاست تغییر کرده باشد، مثلاً پس از نصب مجدد سیستمعامل روی سرور ممکن است شاهد بروز چنین خطایی باشیم.
- آیا رفع خطا Host Key Verification Failed، امنیت SSH را کاهش میدهد؟
خیر، اگر بهدرستی انجام شود، امنیت SSH نیز حفظ خواهد شد. مهم است که از تغییرات مشکوک در کلیدهای میزبان آگاه باشید تا از حملات Man-in-the-Middle جلوگیری کنید.
- آیا باید پس از رفع خطا Host Key Verification Failed، کلید جدید را تایید کنیم؟
بله، پس از حذف کلید قدیمی، باید کلید جدید را هنگام اتصال بعدی تایید کنید تا به فایل known_hosts اضافه شود.