مقدمه
SSH یا Secure Shell استاندارد اصلی برای مدیریت امن سرورهای راهدور در دنیای لینوکس است. اولین و مهمترین مرحله هنگام اتصال به یک سرور، احراز هویت است. اگرچه ورود با رمز عبور هنوز رایج است، اما در برابر حملات brute-force و نفوذهای خودکار آسیبپذیر محسوب میشود.
راهحل حرفهای و امنتر، استفاده از کلیدهای SSH است. این روش مبتنی بر رمزنگاری کلید عمومی بوده و بدون ارسال رمز عبور، دسترسی امن و مطمئن به سرور را فراهم میکند. استفاده از SSH Key یکی از پایهایترین اصول امنیتی برای هر مدیر سیستم محسوب میشود.
در این آموزش از «دیدگاه» بهصورت گامبهگام یاد میگیرید:
-
چگونه یک جفت کلید SSH امن بسازید
-
چطور کلید عمومی را روی سرور قرار دهید
-
مجوزهای صحیح فایلها را تنظیم کنید
-
ورود با رمز عبور و لاگین مستقیم root را غیرفعال کنید
-
و در نهایت یک اتصال امن و بدون پسورد داشته باشید
نکات کلیدی این آموزش
-
کلیدهای SSH نسبت به رمز عبور امنیت بسیار بالاتری دارند
-
الگوریتم Ed25519 بهترین انتخاب برای ساخت کلید جدید است
-
دستور
ssh-keygen -t ed25519برای تولید کلید استفاده میشود -
استفاده از Passphrase لایه امنیتی بسیار مهمی اضافه میکند
-
ابزار
ssh-copy-idسادهترین روش انتقال کلید به سرور است -
غیرفعالسازی لاگین با پسورد و root امنیت سرور را چند برابر میکند
-
ssh-agent امکان استفاده راحت از کلیدهای رمزدار را فراهم میکند
-
مجوزهای اشتباه فایلها شایعترین علت خطاهای SSH هستند
-
تونل SSH برای اتصال امن به سرویسهایی مثل Jupyter بسیار کاربردی است
SSH Key چیست و چگونه کار میکند؟
کلیدهای SSH شامل دو بخش هستند:
1. کلید خصوصی (Private Key)
-
روی سیستم شما باقی میماند
-
نباید در اختیار هیچکس قرار بگیرد
-
بهتر است با Passphrase محافظت شود
2. کلید عمومی (Public Key)
-
قابل اشتراکگذاری است
-
روی سرور در فایل
~/.ssh/authorized_keysذخیره میشود
روند احراز هویت
هنگام اتصال:
-
سرور با کلید عمومی یک چالش ایجاد میکند
-
کلاینت با کلید خصوصی پاسخ میدهد
-
بدون ارسال کلید یا رمز عبور، هویت شما تأیید میشود
چرا باید از SSH Key استفاده کنیم؟
امنیت بالا
شکستن یک کلید Ed25519 یا RSA 4096-bit عملا غیرممکن است، در حالی که رمزهای عبور قابل حدس هستند.
راحتی
پس از راهاندازی، بدون وارد کردن رمز عبور وارد سرور میشوید. با ssh-agent حتی Passphrase هم فقط یک بار وارد میشود.
اتوماسیون
در CI/CD، بکاپگیری، Ansible و اسکریپتها، استفاده از رمز عبور فاجعه امنیتی است. SSH Key راهحل استاندارد است.
انواع کلید SSH
| الگوریتم | اندازه | سرعت | توضیح |
|---|---|---|---|
| RSA | 3072 یا 4096 | کند | قدیمی اما سازگار |
| ECDSA | 256 تا 521 | متوسط | امنیت خوب، ولی بحثبرانگیز |
| Ed25519 | 256 | بسیار سریع | مدرن، امن، پیشنهاد دیدگاه |
نتیجه:
اگر سیستم قدیمی ندارید، فقط Ed25519.
پیشنیازها
برای اجرای این آموزش باید:
-
اوبونتو 20.04 / 22.04 / 24.04 داشته باشید
-
یک کاربر غیر root با دسترسی sudo
-
بستههای
openssh-clientوopenssh-serverنصب باشند
بررسی وضعیت SSH
نصب در صورت نیاز
ساخت کلید SSH
روی سیستم خود اجرا کنید:
-
مسیر پیشفرض را با Enter تأیید کنید
-
حتما یک Passphrase قوی وارد کنید
فایلها ساخته میشوند:
-
~/.ssh/id_ed25519← کلید خصوصی -
~/.ssh/id_ed25519.pub← کلید عمومی
انتقال کلید عمومی به سرور
روش پیشنهادی (ساده)
روش دستی
روی سیستم خود:
روی سرور:
تست اتصال
اگر بدون رمز عبور وارد شدید، همهچیز درست است.
افزایش امنیت SSH سرور
فایل تنظیمات را باز کنید:
غیرفعالسازی پسورد
غیرفعالسازی ورود root
سرویس را ریستارت کنید:
مجوزهای صحیح فایلها (بسیار مهم)
تونل SSH (Port Forwarding)
مثال: اتصال امن به Jupyter
سپس در مرورگر:
خطایابی SSH
حالت دیباگ
خطای Permission denied
۹۰٪ مواقع مشکل از مجوز فایلها یا کلید اشتباه است.
جمعبندی
با راهاندازی SSH Key در اوبونتو:
-
امنیت سرور را بهشدت افزایش میدهید
-
حملات brute-force عملا بیاثر میشوند
-
اتصال سریعتر و حرفهایتری خواهید داشت
-
آماده اتوماسیون، CI/CD و مدیریت پیشرفته میشوید
این روش یکی از پایههای اصلی مدیریت امن سرور در لینوکس است و هر مدیر سیستم باید به آن مسلط باشد.
دیدگاه همیشه توصیه میکند:

