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

آموزش اتصال به سرور ریموت با SSH (راهنمای گام‌به‌گام)

SSH یا Secure Shell ستون فقرات مدیریت امن سرورهای لینوکسی است. با SSH می‌توانید از راه دور به سرور وصل شوید، دستورات اجرا کنید، فایل‌ها را منتقل کنید و حتی برنامه‌های گرافیکی را روی سیستم محلی اجرا کنید، همه از طریق یک کانال رمزنگاری‌شده.

مقدمه

یکی از مهم‌ترین ابزارهایی که هر مدیر سیستم یا ادمین سرور باید به‌خوبی بر آن مسلط باشد، SSH است.

SSH یا Secure Shell پروتکلی امن برای اتصال و ورود به سیستم‌های راه‌دور محسوب می‌شود و رایج‌ترین روش دسترسی به سرورهای لینوکسی است. این پروتکل امکان مدیریت سرور، اجرای دستورات و انتقال اطلاعات را از طریق یک کانال رمزنگاری‌شده فراهم می‌کند.

در این آموزش از دیدگاه، به‌صورت مرحله‌به‌مرحله یاد می‌گیریم چگونه با استفاده از SSH به یک سرور ریموت متصل شویم و تنظیمات امنیتی آن را بهینه کنیم.


شروع سریع: اتصال به سرور با SSH در ۵ مرحله

  1. باز کردن ترمینال

    • در لینوکس و macOS: برنامه Terminal

    • در ویندوز: PowerShell، Git Bash یا WSL

  2. اجرای دستور SSH

ssh username@server_ip
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
  • تأیید اثر انگشت (Fingerprint) سرور
    در اولین اتصال، از شما خواسته می‌شود کلید سرور را تأیید کنید.

  • احراز هویت

    • با رمز عبور

    • یا با کلید SSH (در صورت تنظیم)

  • اتصال برقرار شد
    برای خروج از نشست SSH:

  • exit
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    ساختار اصلی دستور SSH

    فرم ساده دستور:

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

    در این حالت، نام کاربری سیستم محلی شما با نام کاربر سرور یکسان فرض می‌شود.

    اگر نام کاربری متفاوت است:

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

    remote_host می‌تواند IP سرور یا دامنه باشد.


    SSH در ویندوز، لینوکس و مک

    • Linux / macOS
      دستور SSH به‌صورت پیش‌فرض در سیستم موجود است.

    • Windows

      • PowerShell با OpenSSH

      • Git Bash

      • Windows Subsystem for Linux (WSL)

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


    SSH چگونه کار می‌کند؟

    SSH از دو بخش تشکیل شده است:

    • کلاینت (ssh) روی سیستم شما

    • سرور (sshd) روی سرور مقصد

    در اغلب توزیع‌های لینوکس، سرویس sshd به‌صورت پیش‌فرض فعال است. اگر فعال نبود، می‌توان آن را اجرا کرد.

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

    اگر هنوز اوبونتو را نصب نکرده‌اید، پیش از این مرحله می‌توانید از راهنمای کامل نصب Ubuntu 24 کمک بگیرید.

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

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

    فایل اصلی تنظیمات SSH در اوبونتو:

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

    تهیه نسخه پشتیبان

    sudo cp /etc/ssh/sshd_config{,.bak}
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    ویرایش فایل

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

    مهم‌ترین تنظیمات sshd_config

    پورت اتصال

    Port 22
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    پورت پیش‌فرض 22 است. تغییر آن باعث کاهش حملات خودکار می‌شود.


    دسترسی کاربر root

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

    برای امنیت بیشتر، ورود مستقیم root را غیرفعال کنید.


    زمان انتظار ورود

    LoginGraceTime 120
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    مدت زمانی که کاربر برای ورود فرصت دارد.


    لاگ‌ها

    LogLevel INFO
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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


    X11 Forwarding

    X11Forwarding yes
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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


    اعمال تغییرات

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

    توصیه دیدگاه: هنگام تغییر تنظیمات SSH، حتماً یک نشست SSH دیگر باز نگه دارید تا در صورت خطا از سرور قفل نشوید.


    مدیریت چند سرور با ~/.ssh/config

    برای ساده‌سازی اتصال به چند سرور:

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

    نمونه:

    5 خط
    Host dev-server
        HostName 192.168.1.10
        User devuser
        Port 2222
        IdentityFile ~/.ssh/dev_key
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    اتصال:

    ssh dev-server
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    ورود با کلید SSH (امن و حرفه‌ای)

    مکانیزم احراز هویت با کلید

    • کلید خصوصی: فقط روی سیستم شما

    • کلید عمومی: روی سرور

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


    ساخت کلید SSH

    ssh-keygen -t rsa
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    کلیدها در مسیر زیر ساخته می‌شوند:

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

    سطح دسترسی صحیح فایل‌ها

    3 خط
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa
    chmod 644 ~/.ssh/id_rsa.pub
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

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

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

    پس از آن، ورود بدون رمز عبور انجام می‌شود.


    اجرای دستور روی سرور بدون ورود

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

    این روش به‌ویژه برای اجرای اسکریپت‌های Bash در فرآیندهای خودکار بسیار کاربردی است.


    خطاهای رایج SSH و راه‌حل‌ها

    خطاعلت احتمالیراه‌حل
    Connection refusedsshd فعال نیست
    systemctl start ssh
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
    Permission deniedمجوز فایل‌ها اشتباه استاصلاح chmod Timeoutفایروال یا شبکهبررسی پورت و DNS Host key failedتغییر IP
    ssh-keygen -R ip
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    غیرفعال‌سازی ورود با رمز عبور (توصیه امنیتی)

    2 خط
    PasswordAuthentication no
    PubkeyAuthentication yes
    برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

    سپس:

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

    هشدار: قبل از این کار، حتماً کلید SSH را تست کرده باشید.


    چک‌لیست امنیت SSH از دیدگاه

    • غیرفعال کردن PasswordAuthentication

    • تغییر پورت پیش‌فرض

    • استفاده از SSH Key

    • PermitRootLogin no

    • محدودسازی دسترسی با فایروال

    • بروزرسانی منظم سیستم


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

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

    آیا SSH امن است؟
    بله، مخصوصاً با کلید SSH، پورت غیرپیش‌فرض و تنظیمات صحیح.

    آیا SSH در ویندوز هم قابل استفاده است؟
    کاملاً. PowerShell، Git Bash و WSL همگی پشتیبانی می‌شوند.


    جمع‌بندی

    یادگیری و تسلط بر SSH یکی از ضروری‌ترین مهارت‌ها در مدیریت سرور و زیرساخت است. این ابزار سبک، امن و انعطاف‌پذیر سال‌هاست ستون اصلی مدیریت سرورهای لینوکسی محسوب می‌شود و همچنان انتخاب اول حرفه‌ای‌هاست.

    آموزش از: دیدگاه

    برای انتقال امن فایل‌ها بین سیستم خود و سرور نیز می‌توانید از آموزش استفاده از SFTP استفاده کنید.

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

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

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