رفع مشکل در هنگام ssh زدن در لینوکس
دوشنبه, ۶ آبان ۱۳۹۲، ۰۱:۴۴ ب.ظ
با سلام .
امروز با این مطلب در خدمتتون هستم که گاهی ممکنه بخوایم ssh بزنیم اما با پیغامی روبه رو میشیم که از ما میخواد تا ssh key رو تغییر بدیم...
برای ssh زدن قانون کلی به صورت زیر است :
ssh user@ipaddress -p port number
اگر بخوایم به پورت ۲۲ ssh بزنیم دیگه -p هم نیازی نیست.
اما گاهی هنگام ssh زدن ممکنه پیغام خطایی به صورت زیر برامون بیاد :
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 a7:a8:f2:97:94:33:58:b7:9d:bc:e0:a6:6b:f7:0a:29. Please contact your system administrator. Add correct host key in /home/ramesh/.ssh/known_hosts to get rid of this message. Offending key in /home/ramesh/.ssh/known_hosts: 6 Permission denied (publickey,password).
برای رفع این مشکل دو راه وجود داره :
۱ - طوری ssh بزنیم که ssh key بررسی نشه ... برای این کار فرمان زیر رو باید وارد کنید :
۱ - طوری ssh بزنیم که ssh key بررسی نشه ... برای این کار فرمان زیر رو باید وارد کنید :
ssh -o 'StrictHostKeyChecking no' user@host
۲ - در خطای بالا در خطی که بولد شده ملاحظه میکنید که از خط ۶ در known_hosts خطا گرفته.. میتونه این خطا از جاهای دیگه هم باشه که با توجه به خط خطا باید فرمان دو زیر رو تغییر بدید :
sed -i '6d' ~/.ssh/known_hosts
perl -pi -e 's/\Q$_// if ($. == 6);' ~/.ssh/known_hosts
برای مثال اگر خطا رو برای شما از خط ۸ گرفت عبارات بالا رو باید به شکل زیر
تغییر بدید :
sed -i '8d' ~/.ssh/known_hosts
perl -pi -e 's/\Q$_// if ($. == 8);' ~/.ssh/known_host
۹۲/۰۸/۰۶