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

آموزش ساخت SSH Key در لینوکس

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

آموزش ساخت 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-keygen
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

خروجی اولیه به شکل زیر است:

Enter file in which to save the key (/home/username/.ssh/id_rsa):
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

اگر مسیر پیش‌فرض را تأیید کنید، فایل‌ها در این مسیر ایجاد می‌شوند:

  • کلید خصوصی:

~/.ssh/id_rsa
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

 

  • کلید عمومی:

  • ~/.ssh/id_rsa.pub
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

     

    پیشنهاد می‌شود مسیر پیش‌فرض را تغییر ندهید.


    انتخاب Passphrase

    در ادامه، از شما درخواست می‌شود یک passphrase برای کلید خصوصی تعیین کنید:

    Enter passphrase (empty for no passphrase):
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    استفاده از passphrase اختیاری است اما به‌شدت توصیه می‌شود، زیرا:

    • کلید خصوصی روی دیسک رمزگذاری می‌شود

    • در صورت سرقت فایل، استفاده از آن دشوارتر می‌شود

    • یک لایه امنیتی اضافی ایجاد می‌کند

    در صورت عدم تمایل، می‌توانید این مرحله را با Enter رد کنید.


    پایان ساخت کلید

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

    2 خط
    Your identification has been saved in ~/.ssh/id_rsa
    Your public key has been saved in ~/.ssh/id_rsa.pub
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    در این مرحله، جفت کلید شما آماده استفاده است.


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

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


    روش اول: استفاده از ssh-copy-id (پیشنهادی)

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

    ssh-copy-id
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    است.

     

    ssh-copy-id username@remote_host
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    پس از وارد کردن رمز عبور کاربر روی سرور، کلید عمومی شما به فایل زیر اضافه می‌شود:

    ~/.ssh/authorized_keys
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    روش دوم: انتقال کلید با SSH

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

    cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    این دستور:

    • پوشه

    .ssh
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    را در صورت نیاز ایجاد می‌کند

     

  • کلید را به انتهای فایل authorized_keys اضافه می‌کند


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

    1. نمایش کلید عمومی روی سیستم محلی:

    cat ~/.ssh/id_rsa.pub
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    1. ورود به سرور

    2. ایجاد پوشه ssh:

    mkdir -p ~/.ssh
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    1. افزودن کلید به authorized_keys:

    echo "public_key_string" >> ~/.ssh/authorized_keys
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    مرحله سوم: اتصال به سرور با SSH Key

    پس از انتقال موفق کلید:

    ssh username@remote_host
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    در صورتی که passphrase تعریف کرده باشید، از شما درخواست می‌شود آن را وارد کنید. اگر همه چیز درست باشد، بدون نیاز به رمز عبور وارد سرور می‌شوید.


    مرحله چهارم: غیرفعال کردن ورود با رمز عبور

    برای افزایش امنیت، پس از اطمینان از عملکرد SSH Key، بهتر است ورود با رمز عبور را غیرفعال کنید.

    ویرایش تنظیمات SSH

    sudo nano /etc/ssh/sshd_config
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    خط زیر را پیدا کرده و مقدار آن را تغییر دهید:

    PasswordAuthentication no
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

    sudo systemctl restart ssh
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    از این پس، فقط ورود با SSH Key امکان‌پذیر خواهد بود.


    استفاده از HSM برای نگهداری SSH Key

    ماژول‌های امنیتی سخت‌افزاری (HSM) امکان ذخیره کلید خصوصی در سخت‌افزار امن را فراهم می‌کنند.

    مزایای HSM

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

    • محافظت در برابر سرقت فایل

    • مناسب محیط‌های حساس و سازمانی

    استفاده از HSM با SSH

    نمونه تولید کلید روی HSM:

    ssh-keygen -D /usr/lib/opensc-pkcs11.so -s user-hsm-key
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    پرسش‌های متداول

    SSH Key چیست؟

    روشی امن برای احراز هویت در SSH که جایگزین رمز عبور می‌شود.

    کلید خصوصی کجا ذخیره می‌شود؟

    در مسیر

    ~/.ssh/
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    و باید کاملا محرمانه بماند.

     

    بهترین نوع کلید SSH چیست؟

    Ed25519 یا RSA با طول حداقل 4096 بیت.

    چگونه ورود با رمز عبور را غیرفعال کنیم؟

    با تنظیم

    PasswordAuthentication no
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    در فایل
    sshd_config
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    .

     


    جمع‌بندی

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

    برای آشنایی کامل با تمام قابلیت‌های SSH از جمله تونل‌سازی و SSH Agent، راهنمای جامع SSH را مطالعه کنید. کاربران CentOS نیز می‌توانند از راهنمای اختصاصی SSH Key در CentOS 8 استفاده کنند.

    این راهنما توسط دیدگاه برای مدیران سیستم، توسعه‌دهندگان و کاربران حرفه‌ای لینوکس تهیه شده است.

    زیرساخت ابری برای اجرای همین آموزش

    سرور ابری ساعتی را برای Docker، Ubuntu و DevOps راه‌اندازی کنید — پرداخت به میزان مصرف یا ماهانه.

    ادامه یادگیری:Docker·Ubuntu·VPS