رفتن به محتوای اصلی
دیدگاه کلود | ارائه‌کننده سرورهای ابری و اختصاصی
آموزش کامل راه‌اندازی SSH Key در اوبونتو

آموزش کامل راه‌اندازی SSH Key در اوبونتو

SSH Key ابزاری امن و حرفه‌ای برای ورود بدون رمز عبور به سرورهای لینوکس است که امنیت را بالا برده و حملات brute-force را بی‌اثر می‌کند. با الگوریتم‌های مدرن مثل Ed25519 و استفاده از ssh-agent، اتصال سریع و اتوماسیون CI/CD ممکن می‌شود. راه‌اندازی صحیح کلید SSH شامل ساخت کلید، انتقال کلید عمومی به سرور، تنظیم مجوزها و غیرفعال‌کردن ورود با پسورد و root است.

مقدمه

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 ذخیره می‌شود

روند احراز هویت

هنگام اتصال:

  1. سرور با کلید عمومی یک چالش ایجاد می‌کند

  2. کلاینت با کلید خصوصی پاسخ می‌دهد

  3. بدون ارسال کلید یا رمز عبور، هویت شما تأیید می‌شود


چرا باید از SSH Key استفاده کنیم؟

امنیت بالا

شکستن یک کلید Ed25519 یا RSA 4096-bit عملا غیرممکن است، در حالی که رمزهای عبور قابل حدس هستند.

راحتی

پس از راه‌اندازی، بدون وارد کردن رمز عبور وارد سرور می‌شوید. با ssh-agent حتی Passphrase هم فقط یک بار وارد می‌شود.

اتوماسیون

در CI/CD، بکاپ‌گیری، Ansible و اسکریپت‌ها، استفاده از رمز عبور فاجعه امنیتی است. SSH Key راه‌حل استاندارد است.


انواع کلید SSH

الگوریتماندازهسرعتتوضیح
RSA3072 یا 4096کندقدیمی اما سازگار
ECDSA256 تا 521متوسطامنیت خوب، ولی بحث‌برانگیز
Ed25519256بسیار سریعمدرن، امن، پیشنهاد دیدگاه

نتیجه:
اگر سیستم قدیمی ندارید، فقط Ed25519.


پیش‌نیازها

برای اجرای این آموزش باید:

  • اوبونتو 20.04 / 22.04 / 24.04 داشته باشید

  • یک کاربر غیر root با دسترسی sudo

  • بسته‌های openssh-client و openssh-server نصب باشند

بررسی وضعیت SSH

 
sudo systemctl status ssh

نصب در صورت نیاز

 
sudo apt update sudo apt install openssh-server openssh-client

ساخت کلید SSH

روی سیستم خود اجرا کنید:

 
ssh-keygen -t ed25519
  • مسیر پیش‌فرض را با Enter تأیید کنید

  • حتما یک Passphrase قوی وارد کنید

فایل‌ها ساخته می‌شوند:

  • ~/.ssh/id_ed25519 ← کلید خصوصی

  • ~/.ssh/id_ed25519.pub ← کلید عمومی


انتقال کلید عمومی به سرور

روش پیشنهادی (ساده)

 
ssh-copy-id user@server_ip

روش دستی

روی سیستم خود:

 
cat ~/.ssh/id_ed25519.pub

روی سرور:

 
mkdir -p ~/.ssh chmod 700 ~/.ssh nano ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys

تست اتصال

 
ssh user@server_ip

اگر بدون رمز عبور وارد شدید، همه‌چیز درست است.


افزایش امنیت SSH سرور

فایل تنظیمات را باز کنید:

 
sudo nano /etc/ssh/sshd_config

غیرفعال‌سازی پسورد

 
PasswordAuthentication no

غیرفعال‌سازی ورود root

 
PermitRootLogin no

سرویس را ریستارت کنید:

 
sudo systemctl restart ssh

مجوزهای صحیح فایل‌ها (بسیار مهم)

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

تونل SSH (Port Forwarding)

مثال: اتصال امن به Jupyter

 
ssh -L 8888:localhost:8888 user@server_ip

سپس در مرورگر:

 
http://localhost:8888

خطایابی SSH

حالت دیباگ

 
ssh -v user@server_ip

خطای Permission denied

۹۰٪ مواقع مشکل از مجوز فایل‌ها یا کلید اشتباه است.


جمع‌بندی

با راه‌اندازی SSH Key در اوبونتو:

  • امنیت سرور را به‌شدت افزایش می‌دهید

  • حملات brute-force عملا بی‌اثر می‌شوند

  • اتصال سریع‌تر و حرفه‌ای‌تری خواهید داشت

  • آماده اتوماسیون، CI/CD و مدیریت پیشرفته می‌شوید

این روش یکی از پایه‌های اصلی مدیریت امن سرور در لینوکس است و هر مدیر سیستم باید به آن مسلط باشد.

دیدگاه همیشه توصیه می‌کند: