رفع خطای Host key verification failed در لینوکس
در این مقاله میخوانید
رفع خطای Host key verification failed مانند این است صاحبخانه بدون اینکه به شما بگوید، قفل خانه را تغییر داده و اکنون شما با چند اقدام ساده میتوانید بهراحتی وارد خانه شوید. اگر هنگام اتصال به سرور از طریق SSH با پیغام خطای احراز هویت Host key verification failed روبهرو شدید، نگران نباشید. در این مقاله از آموزش لینوکس بلاگ پارس پک، به شما خواهیم گفت چگونه در کمتر از ۵ دقیقه این مشکل را برطرف کنید. اگر برایتان سوال است «چگونه کلید میزبان را در SSH حذف کنیم؟» تا انتها همراه ما باشید.
دلیل خطای احراز هویت Host key verification failed چیست؟
در پاسخ به اینکه «دلیل خطای Host key verification failed در SSH چیست؟» باید بگوییم خوشبختانه مورد حمله قرار نگرفتید. بلکه فقط کامپیوتر شما قادر نیست اعتبار سروری که به آن وصل میشوید را تایید کند. این مشکل معمولا زمانی پیش میآید که سیستمعامل سرور خود را عوض و دوباره نصب کرده باشید یا رمز عبور کاربر اصلی (root) را تغییر دادید. در ادامه، خواهیم گفت برای رفع خطای Host key verification failed چگونه اقدام کنید.
چگونه خطای Host key verification failed را در SSH رفع کنیم؟
رفع خطای احراز هویت کلید میزبان در SSH با توجه به سرور شما متفاوت است. در حالت کلی، مسیری که پیش رویتان است، بهصورت زیر خواهد بود:
گام اول: حذف ورودی از فایل known_hosts
وقتی برای اولین بار از طریق SSH به سرور مجازی خود متصل شدید، یک کلید میزبان به فایل known_hosts در دستگاه شما اضافه شده است. حالا که سیستمعامل سرور را عوض کردید، این ورودی قدیمی شده و باید حذف شود.
برای آشنایی با نحوه فعال سازی احراز هویت دو مرحلهای SSH در لینوکس مقاله زیر را بخوانید.
گام دوم: اتصال مجدد به سرور
وقتی ورودی قدیمی را حذف کردید، دوباره با استفاده از SSH به سرور مجازی خود متصل شوید. این بار باید بتوانید کلید میزبان را تایید کنید و بدون مشکل وصل شوید. در ادامه، به بررسی رفع مشکل Host key verification failed در SSH برای هر سه سیستم لینوکس، ویندوز و Mac خواهیم پرداخت.
نحوه رفع خطای Host key verification failed در لینوکس و Mac
برای رفع مشکل Host key verification failed در SSH مخصوص کاربران لینوکس و مک میتوانید به دو روش زیر اقدام کنید:
راه اول: حذف فایل با دستور sed
فایل known_hosts که لیست Key Verificationهای مجاز را نگه میدارد، در پوشه ~/.ssh/ قرار گرفته است. برای حذف محتویات آن میتوانید از دستور echo استفاده کنید:
echo -n > ~/.ssh/known_hosts
همچنین میتوانید با تعیین آدرس IP خط مربوط را پاک کنید، در این مثال آیپی 1.2.3.4 در نظر گرفته شده است:
sed -i '/1.2.3.4/d' /home/ec2-user/.ssh/known_hosts
راه دوم: حذف فایل با دستور ssh-keygen
روش دیگر، استفاده از دستور ssh-keygen و گزینه -R است که Keyهای مربوط به یک هاست را حذف میکند. برای مثال، از آن میتوانید برای حذف کلیدهای هش شده نیز استفاده کنید. برای هاست server.parspack.com دستور را بهصورت زیر مینویسیم:
ssh-keygen -R server.parspack.com
همچنین میتوانید به جای دستور بالا آدرس آیپی را وارد کنید:
ssh-keygen -R ssh.server.ip.address
اگر هیچ یک از دو دستور بالا را نتوانستید وارد کنید، راه آخر ویرایش دستی فایل known_hosts است که با دستور vi میتوانید این کار را انجام دهید. برای مثال، میتوانید با دستور زیر فایل را باز کنید:
vi ~/.ssh/known_hosts
سپس به خطی که آدرس آی پی سرور در آن قرار دارد رفته و dd را بزنید تا حذف شود. در نهایت، با فشردن CtrlوC و خروج از حالت تایپ و ورود به حالت کامند در Vi و تایپ کردن wq و سپس Enter تغییرات شما ذخیره میشود. کار برای کاربران مک نیز به همین ترتیب است.
اگر میخواهید یکبار برای همیشه با اصول و مبانی سیستمعامل لینوکس آشنا شوید، مقاله زیر را از دست ندهید.
رفع خطای 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 با چند کلیک ساده بهراحتی قابل انجام است. در این مقاله از آموزش سیستم عامل بلاگ پارس پک، بهطور کامل آن را بررسی کردیم. امیدواریم پس از خواندن این مقاله موفق به رفع مشکل Host key verification failed شده باشید. اگر نیاز به راهنمایی بیشتر دارید، سوالاتتان را میتوانید در انتهای همین مقاله بنویسید تا مشتاقانه راهنماییتان کنیم.
سوالات متداول
۱. دلیل بروز خطای Host key verification failed چیست؟
این خطا زمانی رخ میدهد که SSH نتواند کلید امنیتی سرور را تایید کند. این اتفاق به دلایل مختلفی از جمله تغییر کلید سرور، بهروزرسانی SSH، یا اتصال به یک سرور جدید رخ میدهد.
۲. اگر بهطور تصادفی کلید SSH سرور را از فایل known_hosts حذف کنم، چه اتفاقی میافتد؟
دراینصورت، دیگر نمیتوانید بدون وارد کردن رمز عبور به سرور وصل شوید. برای حل این مشکل، باید دوباره کلید SSH سرور را به فایل known_hosts اضافه کنید.
۳. آیا راهی برای جلوگیری از بروز خطای Host key verification failed وجود دارد؟
بله، میتوانید با فعال کردن گزینه Verify HostKey DNS در تنظیمات SSH از بروز این خطا جلوگیری کنید.