آموزش سرور

اتصال به سرور لینوکس با SSH از ویندوز، مک، لینوکس و موبایل

تهیه: کلودیفای (نگارش با کمک هوش مصنوعی) · انتشار: · زمان مطالعه: ۵ دقیقه

root@server: ~$ ssh root@203.0.113.10The authenticity of host '203.0.113.10' Are you sure you want to continue connecroot@203.0.113.10's password:root@server:~#SSHآموزش سروراتصال به سرور لینوکس باSSH از ویندوز، مک،لینوکس و موبایلمجلهٔ کلودیفایclodify.net/blog
پاسخ کوتاه

برای اتصال به سرور لینوکس کافی است در ترمینال ویندوز ۱۰/۱۱، مک یا لینوکس دستور ssh root@IP را بزنید، اثرانگشت سرور را با yes تأیید و رمز را وارد کنید. برای امنیت بیشتر بعد از اولین ورود، کلید SSH بسازید و ورود با رمز را ببندید. در موبایل اپ‌هایی مانند Termius همین کار را انجام می‌دهند.

SSH چیست و چرا لازم است؟

SSH (Secure Shell) پروتکلی برای اتصال رمزنگاری‌شده به خط فرمان یک سرور از راه دور است. هر چیزی که در ترمینال تایپ می‌کنید، روی سرور اجرا می‌شود و خروجی آن برای شما برمی‌گردد. تقریباً همهٔ کارهای مدیریت سرور لینوکس — نصب نرم‌افزار، تغییر تنظیمات، دیدن لاگ‌ها و اجرای سرویس‌ها — از طریق SSH انجام می‌شود.

برای اتصال سه چیز لازم دارید:

مورد از کجا؟
آی‌پی سرور پنل کلودیفای ← مدیریت سرویس‌ها ← سرور
نام کاربری معمولاً root (مشخصات دقیق در پنل)
رمز یا کلید «نمایش پسورد» در پنل؛ یا کلید SSH که خودتان اضافه کرده‌اید
پورت پیش‌فرض ۲۲ (اگر تغییرش داده باشید، پورت جدید)

اگر سرور را تازه ساخته‌اید، اول مطمئن شوید نصب سیستم‌عامل تمام شده است؛ راهنمای اولین ورود به سرور را ببینید.

کامپیوتر شماکلاینت SSHتونل رمزنگاری‌شدهپورت ۲۲سرورsshdکامپیوتر شماکلاینت SSHتونل رمزنگاری‌شدهپورت ۲۲سرورsshd
شکل ۱ SSH یک کانال رمزنگاری‌شده بین کامپیوتر شما و سرور می‌سازد؛ رمز و دستورها از روی شبکه قابل خواندن نیستند.

اتصال از ویندوز ۱۰ و ۱۱

ویندوزهای جدید کلاینت OpenSSH را به‌صورت داخلی دارند. PowerShell یا Windows Terminal را باز کنید و بنویسید:

ssh root@203.0.113.10
  • در اولین اتصال پیامی دربارهٔ «authenticity of host» می‌بینید؛ yes را تایپ کنید.
  • رمز را وارد کنید؛ هنگام تایپ هیچ کاراکتری نمایش داده نمی‌شود و این طبیعی است.
  • برای پورت غیرپیش‌فرض: ssh -p 2222 root@203.0.113.10

اگر پیام «ssh is not recognized» دیدید، از Settings ← Apps ← Optional features، گزینهٔ OpenSSH Client را نصب کنید.

PuTTY (روش قدیمی‌تر)

PuTTY را از سایت رسمی آن دانلود کنید، در فیلد Host Name آی‌پی و در Port عدد ۲۲ را بنویسید و Open را بزنید. برای ورود با کلید در PuTTY، کلید باید با PuTTYgen به قالب .ppk تبدیل شود. امروز استفاده از OpenSSH داخلی ویندوز ساده‌تر است.

PowerShell
$ ssh root@203.0.113.10The authenticity of host '203.0.113.10' can't be established.Are you sure you want to continue connecting (yes/no)? yesroot@203.0.113.10's password:root@server:~#$ 
شکل ۲ اولین اتصال SSH در PowerShell ویندوز، ترمینال مک یا لینوکس (آی‌پی نمونه است).

اتصال از مک و لینوکس

برنامهٔ Terminal را باز کنید (در مک: Applications ← Utilities ← Terminal) و همان دستور را بزنید:

ssh root@203.0.113.10

همهٔ گزینه‌های دستور ssh در مک و لینوکس یکسان است.

اتصال از موبایل

سیستم‌عامل اپ‌های رایج نکته
اندروید Termius، JuiceSSH، ConnectBot Termius رابط ساده و پشتیبانی کلید دارد
iOS Termius، Blink Shell Blink برای کاربران حرفه‌ای

در همهٔ این اپ‌ها یک «Host» جدید با آی‌پی، پورت، نام کاربری و رمز یا کلید بسازید. موبایل برای کارهای فوری (ری‌استارت سرویس، دیدن لاگ) عالی است؛ برای کار طولانی از کامپیوتر استفاده کنید. ری‌استارت و خاموش/روشن کردن کل سرور را هم از ربات کلودیفای می‌توانید انجام دهید.

ورود با کلید SSH (توصیه‌شده)

ورود با رمز در برابر حملات حدس رمز آسیب‌پذیر است. کلید SSH امن‌تر و راحت‌تر است:

# ۱) ساخت کلید روی کامپیوتر خودتان (ویندوز، مک یا لینوکس)
ssh-keygen -t ed25519 -C "my-laptop"

# ۲) کپی کلید عمومی روی سرور (مک و لینوکس)
ssh-copy-id root@203.0.113.10

در ویندوز که ssh-copy-id ندارد:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@203.0.113.10 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

پس از اطمینان از ورود با کلید، ورود با رمز را ببندید. آموزش کامل: تغییر پورت SSH و ورود فقط با کلید.

فایل config: اتصال با یک کلمه

اگر چند سرور دارید، در فایل ~/.ssh/config (در ویندوز: C:\Users\NAME\.ssh\config) برای هر سرور یک نام کوتاه بگذارید:

Host de1
    HostName 203.0.113.10
    User root
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 30

از این به بعد فقط بنویسید ssh de1. گزینهٔ ServerAliveInterval کمک می‌کند اتصال در شبکه‌های ناپایدار زودتر قطع نشود.

انتقال فایل با scp و rsync

# آپلود فایل از کامپیوتر به سرور
scp backup.zip root@203.0.113.10:/root/

# دانلود از سرور
scp root@203.0.113.10:/var/log/syslog ./

# همگام‌سازی پوشه (فقط تغییرات)
rsync -avz ./site/ root@203.0.113.10:/var/www/site/

برای کار گرافیکی با فایل‌ها می‌توانید از WinSCP (ویندوز) یا FileZilla با پروتکل SFTP استفاده کنید؛ هر دو از همان مشخصات SSH استفاده می‌کنند.

نکات کار روزمره

  • قطع نشدن کار طولانی: کارهای طولانی را داخل tmux یا screen اجرا کنید تا با قطع اتصال متوقف نشوند (apt install tmux و سپس tmux).
  • کاربر غیر root: برای کار روزمره یک کاربر با دسترسی sudo بسازید؛ چک‌لیست امنیتی را ببینید.
  • دستورهای پایه: فهرست دستورهای ضروری در دستورهای ضروری لینوکس برای مدیریت سرور آمده است.

خطاهای رایج

خطا معنی راه‌حل
Connection timed out بسته‌ها به سرور نمی‌رسند نصب سیستم‌عامل، آی‌پی، فایروال و مسیر شبکه را بررسی کنید
Connection refused سرور در دسترس است اما روی آن پورت سرویسی گوش نمی‌دهد پورت SSH و سرویس sshd را بررسی کنید
Permission denied رمز یا کلید پذیرفته نشد رمز را از پنل دوباره بردارید؛ مسیر کلید را با -i مشخص کنید
REMOTE HOST IDENTIFICATION HAS CHANGED اثرانگشت سرور تغییر کرده (مثلاً بعد از نصب مجدد) ssh-keygen -R 203.0.113.10 و اتصال دوباره

راهنمای کامل رفع خطای اتصال: خطای Connection timed out و refused در SSH.

سؤالات متداول

چرا وقتی رمز را تایپ می‌کنم چیزی نمایش داده نمی‌شود؟

این رفتار عمدی و امنیتی است؛ رمز را کامل تایپ و Enter را بزنید. برای جلوگیری از اشتباه، می‌توانید رمز را کپی و با کلیک راست (در ویندوز) یا Cmd+V (در مک) جای‌گذاری کنید.

بعد از نصب مجدد سرور، اتصال خطای هشدار می‌دهد؛ چرا؟

نصب مجدد کلیدهای میزبان سرور را عوض می‌کند. با ssh-keygen -R IP رکورد قدیمی را حذف کنید و دوباره وصل شوید.

آیا برای سرور ویندوز هم SSH لازم است؟

سرورهای ویندوز معمولاً با Remote Desktop (RDP) مدیریت می‌شوند؛ این راهنما برای سرورهای لینوکس است.

چند نفر می‌توانند هم‌زمان به یک سرور وصل شوند؟

بله؛ برای هر نفر یک کاربر جدا با کلید خودش بسازید تا دسترسی‌ها قابل کنترل باشد.

اتصال SSH بعد از چند دقیقه بیکاری قطع می‌شود؛ چه کنم؟

در فایل config گزینهٔ ServerAliveInterval 30 را اضافه کنید یا کار را داخل tmux انجام دهید.

آماده‌اید؟ سرورتان را بسازید.

از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی

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

ساعتی بپردازید. هر وقت خواستید حذف کنید.