آموزش ساخت SSH Key در لینوکس
راهنمای گامبهگام افزایش امنیت اتصال به سرور
مقدمه
SSH یا Secure Shell یک پروتکل رمزنگاریشده برای مدیریت و ارتباط امن با سرورها است. در اغلب سناریوهای مدیریت سرور لینوکسی، بخش زیادی از زمان مدیر سیستم در ترمینال و از طریق اتصال SSH سپری میشود.
روشهای مختلفی برای احراز هویت در SSH وجود دارد، اما استفاده از SSH Key امنترین و حرفهایترین روش محسوب میشود. به همین دلیل، این روش بهعنوان استاندارد پیشنهادی برای تمام کاربران و مدیران سرور توصیه میشود.
در این آموزش از دیدگاه، نحوه ساخت، انتقال و استفاده از کلید SSH در لینوکس را بهصورت مرحلهبهمرحله بررسی میکنیم و در انتها، تنظیمات امنیتی تکمیلی را نیز توضیح میدهیم.
SSH Key چگونه کار میکند؟
در SSH میتوان از روشهای مختلفی برای احراز هویت استفاده کرد. سادهترین روش، ورود با رمز عبور است؛ اما این روش در برابر حملات brute-force و اسکریپتهای خودکار آسیبپذیر است.
SSH Key جایگزینی امنتر برای رمز عبور است و بر پایه رمزنگاری نامتقارن کار میکند.
ساختار SSH Key
هر SSH Key شامل دو بخش است:
-
کلید خصوصی (Private Key)
روی سیستم کاربر باقی میماند و باید کاملا محرمانه نگهداری شود. -
کلید عمومی (Public Key)
روی سرور قرار میگیرد و اشتراکگذاری آن خطری ندارد.
سرور هنگام اتصال، بررسی میکند که کلاینت مالک کلید خصوصی متناظر با کلید عمومی ثبتشده هست یا نه. در صورت تایید، اتصال برقرار میشود.
مزایای استفاده از SSH Key
-
حذف نیاز به وارد کردن رمز عبور
-
مقاومت بالا در برابر brute-force
-
عدم ارسال کلید خصوصی در شبکه
-
امکان رمزگذاری کلید با passphrase
-
مناسب برای اسکریپتها و اتوماسیون
مرحله اول: ساخت SSH Key در لینوکس
برای ایجاد کلید SSH، از ابزار ssh-keygen استفاده میشود که بهصورت پیشفرض در مجموعه OpenSSH وجود دارد.
اجرای دستور ساخت کلید
خروجی اولیه به شکل زیر است:
اگر مسیر پیشفرض را تأیید کنید، فایلها در این مسیر ایجاد میشوند:
-
کلید خصوصی:
~/.ssh/id_rsa -
کلید عمومی:
~/.ssh/id_rsa.pub
پیشنهاد میشود مسیر پیشفرض را تغییر ندهید.
انتخاب Passphrase
در ادامه، از شما درخواست میشود یک passphrase برای کلید خصوصی تعیین کنید:
استفاده از passphrase اختیاری است اما بهشدت توصیه میشود، زیرا:
-
کلید خصوصی روی دیسک رمزگذاری میشود
-
در صورت سرقت فایل، استفاده از آن دشوارتر میشود
-
یک لایه امنیتی اضافی ایجاد میکند
در صورت عدم تمایل، میتوانید این مرحله را با Enter رد کنید.
پایان ساخت کلید
پس از اتمام، پیام مشابه زیر نمایش داده میشود:
در این مرحله، جفت کلید شما آماده استفاده است.
مرحله دوم: انتقال کلید عمومی به سرور
برای استفاده از SSH Key، باید کلید عمومی روی سرور مقصد قرار بگیرد. این کار به چند روش قابل انجام است.
روش اول: استفاده از ssh-copy-id (پیشنهادی)
سادهترین روش، استفاده از ابزار ssh-copy-id است.
پس از وارد کردن رمز عبور کاربر روی سرور، کلید عمومی شما به فایل زیر اضافه میشود:
روش دوم: انتقال کلید با SSH
اگر ssh-copy-id در دسترس نبود:
این دستور:
-
پوشه
.sshرا در صورت نیاز ایجاد میکند -
کلید را به انتهای فایل authorized_keys اضافه میکند
روش سوم: انتقال دستی کلید
-
نمایش کلید عمومی روی سیستم محلی:
-
ورود به سرور
-
ایجاد پوشه ssh:
-
افزودن کلید به authorized_keys:
مرحله سوم: اتصال به سرور با SSH Key
پس از انتقال موفق کلید:
در صورتی که passphrase تعریف کرده باشید، از شما درخواست میشود آن را وارد کنید. اگر همه چیز درست باشد، بدون نیاز به رمز عبور وارد سرور میشوید.
مرحله چهارم: غیرفعال کردن ورود با رمز عبور
برای افزایش امنیت، پس از اطمینان از عملکرد SSH Key، بهتر است ورود با رمز عبور را غیرفعال کنید.
ویرایش تنظیمات SSH
خط زیر را پیدا کرده و مقدار آن را تغییر دهید:
سپس سرویس SSH را ریستارت کنید:
از این پس، فقط ورود با SSH Key امکانپذیر خواهد بود.
استفاده از HSM برای نگهداری SSH Key
ماژولهای امنیتی سختافزاری (HSM) امکان ذخیره کلید خصوصی در سختافزار امن را فراهم میکنند.
مزایای HSM
-
کلید خصوصی هرگز از سختافزار خارج نمیشود
-
محافظت در برابر سرقت فایل
-
مناسب محیطهای حساس و سازمانی
استفاده از HSM با SSH
نمونه تولید کلید روی HSM:
پرسشهای متداول
SSH Key چیست؟
روشی امن برای احراز هویت در SSH که جایگزین رمز عبور میشود.
کلید خصوصی کجا ذخیره میشود؟
در مسیر ~/.ssh/ و باید کاملا محرمانه بماند.
بهترین نوع کلید SSH چیست؟
Ed25519 یا RSA با طول حداقل 4096 بیت.
چگونه ورود با رمز عبور را غیرفعال کنیم؟
با تنظیم PasswordAuthentication no در فایل sshd_config.
جمعبندی
استفاده از SSH Key یکی از مهمترین اقدامات امنیتی در مدیریت سرورهای لینوکسی است. با اجرای صحیح این مراحل، هم امنیت سرور افزایش مییابد و هم فرآیند ورود سریعتر و حرفهایتر میشود.
این راهنما توسط دیدگاه برای مدیران سیستم، توسعهدهندگان و کاربران حرفهای لینوکس تهیه شده است.

