Single Blog

راهنمای جامع استفاده از SSH Key در لینوکس

آذر ۲۷, ۱۳۹۸, نویسنده: 0 comment

SSH Keys  چیست ؟

برخلاف روش استفاده از پسورد، کرک کردن ssh key با روش Brute Force تقریبا غیر ممکن است. Key pair دو متن یا string  طولانی ایجاد میکند:

یکی کلید Public یا عمومی و دیگری کلید Private یا خصوصی که هردو برای اتصال به سرور مورد نیاز خواهد بود. کلید public را میتوانید بر روی سرور های خود قرار داده و با SSH Client که کلید Private را دارد به انها متصل شوید، زمانی که کلید ها با یکدیگر Match باشند اتصال بدون درخواست پسوورد برقرار خواهد شد. برای افزایش امنیت حتی میتوانید درخواست پسوورد را نیز برای اتصال فعال نمایید. در این آموزش جامع، به بررسی دقیق و مرحله‌به‌مرحله نحوه ساخت، تنظیم و استفاده از کلیدهای SSH در سیستم‌عامل لینوکس می‌پردازیم.

 

چرا استفاده از کلید SSH به جای رمز عبور بهتر است؟

استفاده از کلیدهای SSH به جای رمز عبور، سطح امنیت اتصال به سرور را چند برابر افزایش می‌دهد. برخلاف رمز عبور، که می‌تواند با حمله Brute Force کرک شود، کلیدهای SSH به‌شدت رمزنگاری شده و کرک کردن آن‌ها عملاً غیرممکن است. در این روش، از یک جفت کلید عمومی (Public Key) و خصوصی (Private Key) استفاده می‌شود.

مزایای استفاده از کلید SSH

  • افزایش امنیت در اتصال به سرورهای لینوکسی
  • حذف نیاز به وارد کردن رمز عبور در هر اتصال
  • مناسب برای اتوماسیون و اسکریپت‌نویسی
  • جلوگیری از دسترسی غیرمجاز در صورت تنظیم درست

 

روش‌های اتصال به SSH

  1. اتصال با رمز عبور (Password-based Authentication)
  2. اتصال با کلیدهای SSH (SSH Key-based Authentication) – پیشنهاد شده برای سرورهای اختصاصی، ابری و VPS

 

مراحل ساخت و تنظیم کلیدهای SSH در لینوکس

 

تنظیم کلیدهای ssh در لینوکس

 

مرحله اول: ایجاد کلید SSH با استفاده از ssh-keygen

در ترمینال لینوکس، دستور زیر را وارد کنید:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa: نوع کلید را RSA تعیین می‌کند.
  • -b 4096: طول کلید را 4096 بیت تنظیم می‌کند (امن‌تر از 2048 بیت).
  • -C: برای اضافه کردن یک برچسب به کلید (اختیاری)

 

مرحله دوم: ذخیره کلیدها و انتخاب Passphrase

پس از اجرای دستور بالا، سیستم چند سوال از شما می‌پرسد:

  1. مسیر ذخیره کلید (پیش‌فرض: /home/user/.ssh/id_rsa)
  2. تعیین یک Passphrase (عبارت عبور دوم)
    • وارد کردن Passphrase توصیه می‌شود. در صورت عدم تمایل می‌توانید Enter بزنید.

در پایان این مرحله:

  • کلید عمومی: /home/user/.ssh/id_rsa.pub
  • کلید خصوصی: /home/user/.ssh/id_rsa

 

مرحله سوم: کپی کردن کلید عمومی روی سرور مقصد

از یکی از دو روش زیر استفاده کنید:

روش ۱: استفاده از ssh-copy-id

ssh-copy-id user@server_ip_address

 

روش ۲: انتقال دستی کلید عمومی

cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

نکته امنیتی: حتماً سطح دسترسی فایل authorized_keys را روی 600 و پوشه .ssh را روی 700 تنظیم کنید:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

 

مرحله چهارم: غیرفعال‌سازی ورود با رمز عبور (اختیاری اما توصیه‌شده)

برای افزایش امنیت، ورود با رمز عبور را غیرفعال کنید:

  1. ویرایش فایل کانفیگ sshd:
sudo nano /etc/ssh/sshd_config
  1. تنظیمات زیر را اعمال یا اصلاح کنید:
PasswordAuthentication no
PermitRootLogin prohibit-password
  1. ذخیره و خروج، سپس ری‌استارت سرویس SSH:
sudo systemctl restart sshd

 

نکات مهم برای افزایش امنیت اتصال SSH

اقدام امنیتی توضیح
استفاده از Passphrase حتی در صورت لو رفتن کلید خصوصی، دسترسی غیرممکن خواهد بود.
محدود کردن IPهای مجاز فقط به IPهای مشخص اجازه اتصال بدهید.
استفاده از پورت غیر پیش‌فرض پورت 22 را تغییر دهید تا از حملات رایج جلوگیری شود.
استفاده از فایروال و fail2ban برای مسدودسازی IPهای مشکوک بسیار مفید هستند.
بررسی لاگ‌ها و مانیتورینگ فعالیت‌های SSH را به‌طور منظم بررسی کنید.

 

مریم ممتاز

ارسال پاسخ

Your email address will not be published. Required fields are marked *