دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
امنیت
  • Folder icon closed Folder open iconCIA Triad چیست؟ آشنایی با سه اصل اساسی امنیت اطلاعات
  • Folder icon closed Folder open iconAttack Surface چیست؟ آشنایی با سطح حمله در امنیت سایبری
  • Folder icon closed Folder open iconThreat چیست؟ آشنایی با مفهوم تهدید در امنیت سایبری
  • Folder icon closed Folder open iconVulnerability چیست؟ آشنایی با آسیب‌پذیری در امنیت سایبری
  • Folder icon closed Folder open iconExploit چیست؟ آشنایی با مفهوم اکسپلویت در امنیت سایبری
  • Folder icon closed Folder open iconRisk چیست؟ آشنایی با مفهوم ریسک در امنیت سایبری
  • Folder icon closed Folder open iconCVE چیست؟ آشنایی با سیستم شماره‌گذاری آسیب‌پذیری‌های امنیتی
  • Folder icon closed Folder open iconCVSS چیست؟ آشنایی با سیستم امتیازدهی آسیب‌پذیری‌های امنیتی
  • Folder icon closed Folder open iconبعد از خرید سرور مجازی لینوکس(VPS)، اولین کارهایی که باید انجام دهید
  • Folder icon closed Folder open iconآموزش تغییر Hostname سرور در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم صحیح Timezone و NTP در لینوکس
  • Folder icon closed Folder open iconآموزش بروزرسانی کامل سیستم‌عامل لینوکس همه توزیع ها
  • Folder icon closed Folder open iconآموزش ساخت کاربر جدید و حذف استفاده روزمره از Root در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم صحیح sudo در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم Banner ورود به SSH در لینوکس
  • Folder icon closed Folder open iconآموزش مدیریت Password Policy در لینوکس
  • Folder icon closed Folder open iconآموزش نصب و راه‌اندازی SSH Key Authentication در لینوکس
  • Folder icon closed Folder open iconآموزش غیرفعال کردن ورود مستقیم Root از طریق SSH
  • Folder icon closed Folder open iconتغییر پورت SSH؛ آیا واقعاً امنیت سرور را افزایش می‌دهد؟
  • Folder icon closed Folder open iconآموزش محدود کردن کاربران مجاز SSH در لینوکس
  • Folder icon closed Folder open iconآموزش محدود کردن دسترسی SSH بر اساس IP در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم LoginGraceTime در SSH؛ کاهش زمان انتظار برای احراز هویت
  • Folder icon closed Folder open iconآموزش تنظیم MaxAuthTries در SSH؛ محدود کردن تعداد تلاش‌های ورود ناموفق
  • Folder icon closed Folder open iconآموزش بررسی لاگ‌های SSH در لینوکس
  • Folder icon closed Folder open iconآموزش عیب‌یابی مشکلات SSH در لینوکس
  • Folder icon closed Folder open iconآموزش کامل UFW در لینوکس؛ راه‌اندازی، مدیریت و ایمن‌سازی فایروال سرور
  • Folder icon closed Folder open iconnftables چیست؟ آشنایی با فایروال نسل جدید لینوکس و جایگزین iptables
  • Folder icon closed Folder open iconآموزش کامل Firewalld در لینوکس
  • Folder icon closed Folder open iconآموزش کامل ConfigServer Security & Firewall (CSF)
  • Folder icon closed Folder open iconآموزش مشاهده Loginهای اخیر در لینوکس
  • Folder icon closed Folder open iconآموزش بررسی پردازش‌های مشکوک در لینوکس
  • Folder icon closed Folder open iconآموزش بررسی Cron Jobهای مشکوک در لینوکس
  • Folder icon closed Folder open iconآموزش کامل Fail2Ban در لینوکس؛ نصب و راه‌اندازی
  • Folder icon closed Folder open iconآموزش نصب RKHunter در لینوکس
  • Folder icon closed Folder open iconآموزش نصب Chkrootkit در لینوکس
  • Folder icon closed Folder open iconآموزش اسکن سرور با RKHunter و Chkrootkit
  • Folder icon closed Folder open iconآموزش نصب، پیکربندی و اسکن سرور با AIDE در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، پیکربندی و استفاده از Auditd در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، اسکن و تحلیل امنیت سرور با Lynis در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، بروزرسانی و اسکن سرور با ClamAV در لینوکس
  • Folder icon closed Folder open iconآموزش Hardening وب‌سرور Nginx
  • Folder icon closed Folder open iconآموزش Hardening وب‌سرور Apache
  • Folder icon closed Folder open iconآموزش Hardening PHP
  • Folder icon closed Folder open iconآموزش Hardening پایگاه داده MySQL
  • Folder icon closed Folder open iconآموزش Hardening سرویس Redis
  • Folder icon closed Folder open iconآموزش Hardening سرویس Docker
  • Folder icon closed Folder open iconآموزش Hardening سرویس FTP
امنیت

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

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

مقدمه

یکی از مهم‌ترین اقدامات برای افزایش امنیت سرورهای لینوکسی، جایگزین کردن SSH Key Authentication به جای ورود با رمز عبور است.

در حالت پیش‌فرض، بسیاری از سرورها اجازه ورود با نام کاربری و رمز عبور را می‌دهند. این روش اگرچه ساده است، اما در برابر حملاتی مانند Brute Force، Password Spraying و Credential Stuffing آسیب‌پذیرتر است.

SSH Key Authentication با استفاده از رمزنگاری کلید عمومی (Public Key Cryptography)، امنیت ورود به سرور را به‌طور قابل توجهی افزایش می‌دهد و امروزه یکی از استانداردهای مدیریت امن سرورهای لینوکسی محسوب می‌شود.

در این مقاله، نحوه ایجاد، نصب و استفاده از SSH Key Authentication را به‌صورت کامل بررسی خواهیم کرد.


SSH Key Authentication چیست؟

SSH Key Authentication روشی برای احراز هویت کاربران است که به جای رمز عبور، از یک جفت کلید رمزنگاری‌شده استفاده می‌کند.

این جفت کلید شامل دو بخش است:

  • Private Key (کلید خصوصی)
  • Public Key (کلید عمومی)

کلید خصوصی روی کامپیوتر شما باقی می‌ماند و هرگز نباید در اختیار دیگران قرار گیرد.

کلید عمومی روی سرور قرار می‌گیرد و برای تأیید هویت شما استفاده می‌شود.

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

نحوه عملکرد SSH Key

فرآیند ورود به شکل زیر انجام می‌شود:

  1. کاربر درخواست اتصال به سرور را ارسال می‌کند.
  2. سرور بررسی می‌کند آیا Public Key مربوط به کاربر را دارد یا خیر.
  3. سرور یک چالش رمزنگاری‌شده ارسال می‌کند.
  4. کلید خصوصی روی کامپیوتر کاربر آن را امضا می‌کند.
  5. اگر امضا معتبر باشد، ورود انجام می‌شود.

در این فرآیند، کلید خصوصی هرگز از سیستم شما خارج نمی‌شود.


مزایای استفاده از SSH Key

استفاده از SSH Key مزایای متعددی دارد:

  • امنیت بسیار بیشتر نسبت به رمز عبور
  • مقاومت در برابر حملات Brute Force
  • ورود سریع‌تر به سرور
  • مناسب برای اسکریپت‌ها و اتوماسیون
  • امکان غیرفعال کردن Password Authentication
  • مدیریت ساده‌تر دسترسی کاربران

پیش‌نیازها

قبل از شروع:

  • یک کاربر غیر Root با دسترسی sudo داشته باشید.
  • از دسترسی SSH فعلی خود مطمئن شوید.
  • تا قبل از تست موفق SSH Key، ورود با رمز عبور را غیرفعال نکنید.

مرحله اول: بررسی وجود کلید SSH

روی کامپیوتر شخصی خود بررسی کنید که آیا قبلاً کلید SSH ایجاد کرده‌اید یا خیر.

در لینوکس یا macOS:

ls ~/.ssh

در ویندوز (PowerShell):

dir $env:USERPROFILE\.ssh

اگر فایل‌هایی مانند موارد زیر وجود داشتند، احتمالاً از قبل کلید دارید:

id_ed25519
id_ed25519.pub

یا

id_rsa
id_rsa.pub

مرحله دوم: ایجاد کلید جدید

اگر کلیدی ندارید، آن را ایجاد کنید.

امروزه استفاده از الگوریتم Ed25519 توصیه می‌شود.

ssh-keygen -t ed25519 -C "your@email.com"

اگر نسخه SSH شما از Ed25519 پشتیبانی نمی‌کند، می‌توانید از RSA استفاده کنید:

ssh-keygen -t rsa -b 4096

محل ذخیره کلید

در هنگام ایجاد کلید، سیستم مسیر ذخیره را نمایش می‌دهد.

معمولاً مسیر پیش‌فرض:

~/.ssh/id_ed25519

کلید عمومی نیز در فایل زیر ذخیره می‌شود:

~/.ssh/id_ed25519.pub

انتخاب Passphrase

در زمان ایجاد کلید، از شما خواسته می‌شود یک Passphrase وارد کنید.

استفاده از Passphrase اجباری نیست، اما به‌شدت توصیه می‌شود.

اگر فایل Private Key به هر دلیلی سرقت شود، بدون Passphrase مهاجم می‌تواند از آن استفاده کند.

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

مرحله سوم: انتقال Public Key به سرور

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

ssh-copy-id username@SERVER_IP

مثال:

ssh-copy-id maraladmin@192.168.1.100

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


انتقال دستی کلید

اگر ssh-copy-id در دسترس نبود:

ابتدا محتوای کلید عمومی را مشاهده کنید.

cat ~/.ssh/id_ed25519.pub

سپس روی سرور:

mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys

محتوای کلید عمومی را در این فایل قرار دهید.


تنظیم مجوز فایل‌ها

یکی از رایج‌ترین دلایل کار نکردن SSH Key، مجوزهای اشتباه فایل‌ها است.

تنظیمات صحیح:

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

همچنین مالک فایل‌ها باید همان کاربر باشد:

chown -R username:username ~/.ssh

مثال:

chown -R maraladmin:maraladmin ~/.ssh

تست اتصال

اکنون اتصال را آزمایش کنید.

ssh username@SERVER_IP

اگر همه مراحل درست انجام شده باشد، بدون درخواست رمز عبور سرور وارد سیستم خواهید شد (یا فقط Passphrase کلید خصوصی درخواست می‌شود).


بررسی تنظیمات SSH

فایل تنظیمات SSH:

/etc/ssh/sshd_config

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

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

اگر این گزینه‌ها وجود ندارند یا غیرفعال هستند، آن‌ها را اصلاح کنید.


اعمال تنظیمات

پس از تغییر فایل تنظیمات:

در Ubuntu و Debian:

sudo systemctl restart ssh

در AlmaLinux و Rocky Linux:

sudo systemctl restart sshd

بررسی صحت تنظیمات

قبل از Restart می‌توانید فایل تنظیمات را بررسی کنید.

sudo sshd -t

اگر خروجی نمایش داده نشود، یعنی فایل بدون خطا است.


غیرفعال کردن Password Authentication

این مرحله را فقط پس از اطمینان از عملکرد صحیح SSH Key انجام دهید.

در فایل:

/etc/ssh/sshd_config

مقدار زیر را تغییر دهید:

PasswordAuthentication no

سپس سرویس SSH را راه‌اندازی مجدد کنید.


استفاده از چند کلید

اگر چند مدیر سیستم دارید، هر مدیر باید کلید اختصاصی خود را داشته باشد.

تمام کلیدهای عمومی را می‌توان در فایل:

~/.ssh/authorized_keys

قرار داد.

از اشتراک‌گذاری یک کلید بین چند نفر خودداری کنید.


حذف دسترسی یک کاربر

اگر یکی از مدیران دیگر به سرور دسترسی نداشته باشد، کافی است Public Key مربوط به او را از فایل:

authorized_keys

حذف کنید.

نیازی به تغییر رمز عبور سایر کاربران نخواهد بود.


اشتباهات رایج

برخی از خطاهای متداول عبارت‌اند از:

  • غیرفعال کردن Password Authentication قبل از تست SSH Key
  • انتخاب مجوزهای اشتباه برای پوشه .ssh
  • اشتراک‌گذاری Private Key
  • ذخیره Private Key روی سرور
  • استفاده از یک کلید مشترک بین چند مدیر سیستم
  • نداشتن Passphrase برای کلید خصوصی

بهترین روش‌ها

برای افزایش امنیت:

  • از Ed25519 استفاده کنید.
  • برای Private Key یک Passphrase تعیین کنید.
  • برای هر مدیر سیستم یک کلید جداگانه ایجاد کنید.
  • از نگهداری نسخه پشتیبان Private Key در محل امن اطمینان حاصل کنید.
  • پس از اطمینان از عملکرد SSH Key، ورود با رمز عبور را غیرفعال کنید.
  • ورود مستقیم Root را نیز غیرفعال کنید.

چک‌لیست

پس از راه‌اندازی SSH Key Authentication، موارد زیر را بررسی کنید:

  • کلید Ed25519 یا RSA ایجاد شده است.
  • Public Key روی سرور قرار دارد.
  • مجوز فایل‌های .ssh صحیح است.
  • ورود با SSH Key بدون مشکل انجام می‌شود.
  • فایل sshd_config بررسی شده است.
  • Password Authentication (در صورت نیاز) غیرفعال شده است.
  • برای هر مدیر سیستم کلید اختصاصی ایجاد شده است.

جمع‌بندی

SSH Key Authentication یکی از مؤثرترین روش‌ها برای افزایش امنیت دسترسی به سرورهای لینوکسی است. این روش با حذف وابستگی به رمز عبور، احتمال موفقیت حملات Brute Force و سایر حملات مبتنی بر رمز عبور را به‌شدت کاهش می‌دهد.

برای دستیابی به بهترین سطح امنیت، ابتدا ورود با SSH Key را برای تمام مدیران سیستم راه‌اندازی کنید، عملکرد آن را به‌طور کامل آزمایش کنید و سپس ورود با رمز عبور و در ادامه، ورود مستقیم Root را غیرفعال نمایید. این سه اقدام، پایه‌های اصلی سخت‌سازی دسترسی SSH در هر سرور لینوکسی محسوب می‌شوند.

کیان پور

هنوز نیاز به کمک دارید؟

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

مقالات مرتبط

  • آموزش تغییر پورت SSH در لینوکس
  • سطوح امنیتی قدیمی(Legacy Security Levels)
  • آموزش محدود کردن دسترسی SSH بر اساس IP در لینوکس
  • بررسی time Zone سرور (لینوکس و ویندوز)
  • آموزش مشاهده و تحلیل لاگ‌های SSH در لینوکس
  • CIA Triad چیست؟ آشنایی با سه اصل اساسی امنیت اطلاعات
  • آموزش کامل ConfigServer Security & Firewall (CSF)
  • ریست سرویس آپاچی در ssh و کنترل پنل های دایرکت ادمین و سی پنل
  • افزایش Open Files در cpanel به همراه cloudlinux
  • آموزش reboot سرور لینوکس
  • امنیت دانلود در cPanel & WHM
  • چگونه پیچیدگی Password را تعیین کنیم
  • چگونه مشکلات Jailshell را در یک VPS مبتنی بر Virtuozzo یا OpenVZ رفع کنیم
  • ریست پسورد root در Ubuntu 16.04
  • بررسی وضعیت سیستم و شناسایی نفوذ سطح root
  • تغییر پورت SSH؛ آیا واقعاً امنیت سرور را افزایش می‌دهد؟
  • عدم نمایش رشته‌های(strings) قابل ترجمه در زبان‌های غیرانگلیسی
  • راهنمای تنظیمات SSL در cPanel & WHM
  • آموزش نصب Chkrootkit در لینوکس
  • حل مشکل پشتیبانی از فرمت HEIC در ImageMagick PECL در نسخه‌های ea-php
  • ریست پسورد root در Ubuntu 18.04
  • راهنمای پیکربندی Microsoft Windows برای استفاده از TLS نسخه ۱.۲
  • چگونه فضای دیسک را در لینوکس محاسبه کنیم؟
  • مدیریت cpHulk از طریق ترمینال
  • بستن دسترسی ssh یوزر root یا یوزرهای دیگر
  • مجموعه قوانین اصلی OWASP ModSecurity
  • Attack Surface چیست؟ آشنایی با سطح حمله در امنیت سایبری
  • Threat چیست؟ آشنایی با مفهوم تهدید در امنیت سایبری
  • نحوه امن‌سازی SSH
  • آموزش ایجاد پارتیشن swap در لینوکس
  • مسدود کردن دسترسی به یک دامنه از مناطق جغرافیایی مشخص در سی‌پنل
  • آموزش تنظیم MaxAuthTries در SSH؛ محدود کردن تعداد تلاش‌های ورود ناموفق
  • آموزش نصب RKHunter در لینوکس
  • Repair کردن دیتابیس Mysql
  • کاهش حملات DoS و DDoS با تنظیمات در فایروال CSF
  • آموزش عیب‌یابی مشکلات SSH در لینوکس
  • راهنمای مشاهده رم و CPU در لینوکس
  • آموزش غیرفعال کردن ورود مستقیم Root از طریق SSH
  • تخلیه حافظه کش در ویندوز و لینوکس
  • آموزش بررسی لاگ‌های SSH در لینوکس
  • چگونه حملات Slowloris را کاهش دهیم
  • تعریف Cron Job در cPanel و DirectAdmin
  • آموزش تنظیم LoginGraceTime در SSH؛ کاهش زمان انتظار برای احراز هویت
  • مفاهیم پایه امنیت
  • مشاهده بیشتر

مطالب اخیراً بازدیدشده

  • آموزش نصب، پیکربندی و استفاده از Auditd در لینوکس
  • بعد از خرید سرور مجازی لینوکس(VPS)، اولین کارهایی که باید انجام دهید
  • آموزش کامل UFW در لینوکس؛ راه‌اندازی، مدیریت و ایمن‌سازی فایروال سرور
  • آموزش محدود کردن کاربران مجاز SSH در لینوکس
  • آموزش تنظیم MaxAuthTries در SSH؛ محدود کردن تعداد تلاش‌های ورود ناموفق
  • آموزش نصب Nextcloud با Docker Compose
  • عیب‌یابی تفاوت نتیجه DNS بین سرور و کامپیوتر شخصی
  • مشاهده بیشتر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

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

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

آگوست 2026
شیدسچپج
1234567
891011121314
15161718192021
22232425262728
293031 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام