ویژه انتشار در وبسایت دیدگاه
مقدمه
SSH یا Secure Shell یک پروتکل رمزنگاریشده برای مدیریت و ارتباط امن با سرورهاست. اگر با سرور CentOS کار میکنید، بخش زیادی از زمان شما در ترمینال و از طریق اتصال SSH میگذرد.
در این راهنما از دیدگاه، روش راهاندازی احراز هویت مبتنی بر SSH Key روی سرور CentOS را بررسی میکنیم. استفاده از کلیدهای SSH یکی از امنترین و سادهترین روشها برای ورود به سرور است و به تمام کاربران توصیه میشود.
مراحل راهاندازی SSH Key در CentOS
-
ایجاد جفت کلید RSA
-
انتقال کلید عمومی به سرور
-
ورود به سرور با SSH Key
-
غیرفعالسازی ورود با رمز عبور
مرحله اول: ایجاد جفت کلید RSA
ابتدا روی سیستم کلاینت (معمولا کامپیوتر شخصی) دستور زیر را اجرا کنید:
ssh-keygenبه صورت پیشفرض یک کلید RSA با طول 2048 بیت ساخته میشود که برای اکثر کاربردها کاملا امن است. در صورت نیاز میتوانید با پارامتر
-b 4096
پس از اجرای دستور، از شما مسیر ذخیره کلید پرسیده میشود. با زدن Enter، کلیدها در مسیر پیشفرض ذخیره خواهند شد:
~/.ssh/id_rsa
~/.ssh/id_rsa.pubاگر قبلا کلیدی وجود داشته باشد، پیغام بازنویسی نمایش داده میشود. توجه داشته باشید که با بازنویسی، کلید قبلی دیگر قابل استفاده نخواهد بود.
در ادامه میتوانید برای کلید خود Passphrase تعیین کنید. این کار امنیت را افزایش میدهد و بهشدت توصیه میشود.
در پایان، یک کلید خصوصی و یک کلید عمومی در اختیار دارید که آماده استفاده هستند.
مرحله دوم: انتقال کلید عمومی به سرور CentOS
روش اول: استفاده از ssh-copy-id (پیشنهادی)
در صورتی که دسترسی SSH با رمز عبور دارید، سادهترین روش استفاده از دستور زیر است:
ssh-copy-id username@server_ipپس از تایید اتصال و وارد کردن رمز عبور کاربر، کلید عمومی شما به فایل
authorized_keys
روش دوم: انتقال کلید با SSH
اگر ssh-copy-id در دسترس نبود، میتوانید از دستور زیر استفاده کنید:
cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"پس از وارد کردن رمز عبور، کلید شما بهدرستی روی سرور ثبت خواهد شد.
روش سوم: انتقال دستی کلید عمومی
در این روش ابتدا محتوای کلید عمومی را نمایش دهید:
cat ~/.ssh/id_rsa.pubسپس وارد سرور شوید و دایرکتوری SSH را ایجاد کنید:
mkdir -p ~/.sshکلید عمومی را به فایل
authorized_keys
echo "public_key_string" >> ~/.ssh/authorized_keysو در نهایت سطح دسترسیها را اصلاح کنید:
chmod -R go= ~/.ssh
chown -R username:username ~/.sshمرحله سوم: ورود به سرور با SSH Key
اکنون میتوانید بدون وارد کردن رمز عبور به سرور متصل شوید:
ssh username@server_ipدر صورت تعیین Passphrase، تنها همان عبارت از شما پرسیده میشود. اگر همهچیز درست انجام شده باشد، اتصال بدون مشکل برقرار خواهد شد.
مرحله چهارم: غیرفعالسازی ورود با رمز عبور (افزایش امنیت)
بعد از اطمینان از کارکرد صحیح SSH Key، برای افزایش امنیت سرور پیشنهاد میشود ورود با رمز عبور را غیرفعال کنید.
فایل تنظیمات SSH را باز کنید:
sudo vi /etc/ssh/sshd_configگزینه زیر را پیدا کرده و مقدار آن را تغییر دهید:
PasswordAuthentication noسپس سرویس SSH را ریاستارت کنید:
sudo systemctl restart sshdدر یک ترمینال جدید اتصال را تست کنید تا مطمئن شوید دسترسی شما قطع نشده است.
جمعبندی
با انجام مراحل بالا، احراز هویت مبتنی بر SSH Key روی سرور CentOS شما فعال شده و ورود با رمز عبور غیرفعال میشود. این کار بهطور قابلتوجهی امنیت سرور را افزایش میدهد و از حملات Brute Force جلوگیری میکند.
اگر هنوز پیکربندی اولیه سرور CentOS خود را انجام ندادهاید، ابتدا راهاندازی اولیه سرور با CentOS را مطالعه کنید. برای سایر توزیعهای لینوکس نیز میتوانید از راهنمای ساخت SSH Key در لینوکس کمک بگیرید.
این راهنما توسط دیدگاه برای استفاده عملی مدیران سرور و کاربران حرفهای آماده شده است.
