چگونه با SSH به سرور Linux متصل شویم
SSH زمانی لازم است که بخواهید ترمینال سرور Linux را باز کنید، بسته نصب کنید، log ببینید، سرویس را restart کنید یا پروژهای به سرور بفرستید. برای اتصال اول، اطلاعات ورود درست و یک دستور کافی است.
در ابتدا سریعترین روش را میبینیم و سپس تفاوت Linux، macOS و Windows، خطاهای معمول و اصول پایه امنیت را بررسی میکنیم.
سریعترین روش اتصال به سرور Linux با SSH
اگر IP سرور، نام کاربر و password یا کلید را دارید، شروع کار ساده است. در بیشتر موارد دستور زیر را اجرا کنید:
ssh username@server_ipاگر سرویس SSH روی پورتی غیر از پورت پیشفرض گوش میدهد، با -p پورت را مشخص کنید:
ssh -p 2222 username@server_ipاگر سرور از کلید استفاده میکند، مسیر کلید خصوصی را بدهید:
ssh -i ~/.ssh/id_ed25519 username@server_ipاکنون وارد سرور شدهاید. بعد از آن باید بدانید چه اطلاعاتی لازم است، روند اتصال در هر سیستمعامل چگونه فرق دارد و چطور دسترسی را بهتر محافظت کنید.
برای اتصال به چه چیزهایی نیاز دارید
SSH یا Secure Shell روشی امن برای بازکردن خط فرمان یک سرور راه دور است. معمولاً برای اولین اتصال این موارد لازم است:
- IP سرور یا نام دامنه؛
- نام کاربر، مانند
root،ubuntu،adminیا حساب دیگر؛ - password یا کلید خصوصی SSH؛
- پورت SSH در صورتی که پورت پیشفرض
22نباشد؛ - فعالبودن SSH روی خود سرور.
پس از ورود در ترمینال Linux راه دور هستید و میتوانید دستورها را مانند رایانه محلی اجرا کنید.
اگر سرور از کلید استفاده میکند
در ورود با کلید، سرور بررسی میکند که کلید خصوصی با کلید عمومی ثبتشده مطابقت دارد یا نه. بنابراین ممکن است هر بار به password نیاز نداشته باشید. برای کارهای مداوم این گزینه هم امنتر و هم راحتتر است.
روند معمول:
- روی رایانه خود کلید بسازید؛
- کلید عمومی را به سرور اضافه کنید؛
- با
sshبدون واردکردن password در هر بار متصل شوید.
برای ساخت کلید در Linux و macOS معمولاً از این دستور استفاده میشود:
ssh-keygen -t ed25519اتصال در Linux و macOS
در Linux و macOS معمولاً SSH از قبل نصب است. ترمینال را باز کنید و اجرا کنید:
ssh username@server_ipبرای پورت دیگر:
ssh -p 2222 username@server_ipبرای اتصال با کلید:
ssh -i ~/.ssh/id_ed25519 username@server_ipپس از نخستین ورود، فوراً بررسی کنید که به ماشین درست وصل شدهاید:
hostname
whoamiاین عادت ساده هنگام مدیریت چند سرور و چند محیط، از اجرای دستور روی ماشین اشتباه جلوگیری میکند.
اتصال در Windows
در Windows دو گزینه عملی دارید: OpenSSH Client در PowerShell یا Windows Terminal و برنامهای جدا مانند PuTTY. برای بیشتر کارها، گزینه داخلی شروع سادهتری دارد.
PowerShell را باز کنید و اجرا کنید:
ssh username@server_ipاگر پورت پیشفرض نیست:
ssh -p 2222 username@server_ipبرای استفاده از کلید، مسیر را مشخص کنید:
ssh -i $env:USERPROFILE\.ssh\id_ed25519 username@server_ipدر PuTTY منطق یکسان است: آدرس، پورت و کاربر را وارد کنید. برای احراز هویت با کلید، فایل .ppk را در تنظیمات برنامه بارگذاری کنید.
اگر SSH در Windows شروع نمیشود چه چیزی را بررسی کنیم
گاهی کلاینت داخلی SSH نصب نیست. در تنظیمات Windows مؤلفه OpenSSH Client را فعال کنید یا موقتاً از PuTTY استفاده کنید.
خطاهای رایج اتصال
در بیشتر موارد مشکل در خود دستور نیست، بلکه یکی از پارامترها اشتباه است.
Connection refused
این پیام معمولاً یعنی سرویس SSH روی سرور اجرا نمیشود یا پورت بسته است. بررسی کنید sshd فعال باشد و پورت لازم در firewall و پنل سرور باز شده باشد.
Permission denied
معمولاً کاربر، password یا کلید اشتباه است. اطلاعات ورود، مسیر کلید، وجود کلید عمومی روی سرور و تطابق کلید را بررسی کنید.
Host key verification failed
این پیام به known_hosts، یعنی فهرست سرورهای شناختهشده، مربوط است و ممکن است بعد از نصب دوباره سیستم، تغییر IP یا ایجاد مجدد سرور دیده شود. اگر از درستبودن ماشین مطمئن هستید، ورودی قدیمی را حذف کنید:
ssh-keygen -R server_ipسپس دوباره متصل شوید و کلید جدید سرور را تأیید کنید.
Could not resolve hostname
یعنی DNS نام میزبان را پیدا نکرده یا آدرس اشتباه وارد شده است. برای بررسی، بهجای نام با IP متصل شوید.
اتصال امنتر
SSH بهطور ذاتی محافظت دارد، اما چند تنظیم پایه میتواند ریسک و سروصدای اضافی در log را کاهش دهد.
بهجای password از کلید SSH استفاده کنید
احراز هویت با کلید برای کار مداوم معمولاً امنتر و راحتتر از password است. اگر سرور کلید را میپذیرد، از ابتدا همین گزینه را انتخاب کنید.
ورود مستقیم با root را غیرفعال کنید
برای کارهای روزانه لازم نیست مستقیماً با root وارد شوید. با کاربر معمولی متصل شوید و در صورت نیاز با sudo سطح دسترسی را بالا ببرید.
تغییر پورت پیشفرض بهعنوان اقدام تکمیلی
میتوانید پورت 22 را به پورتی مانند 2222 تغییر دهید. این کار حمله را متوقف نمیکند، اما اسکنهای تصادفی و botهایی را که فقط پورت پیشفرض را میگردند کاهش میدهد.
known_hosts را بررسی کنید
هشدار تغییر کلید سرور را نادیده نگیرید. علت ممکن است عادی باشد، اما میتواند نشانه جایگزینشدن سرور نیز باشد. پس از تأیید نصب دوباره یا تغییر با پنل یا مدیر، known_hosts را بهروزرسانی کنید.
ارتباط آن با انتخاب سرور
پس از اجاره VPS یا سرور dedicated، SSH کانال اصلی کار شماست. نصب بسته، بهروزرسانی سیستم، deploy کردن Docker، دیدن log و بررسی وضعیت سرویس از همین مسیر انجام میشود. دسترسی پایدار بهجای رفع خطاهای ورود، وقت بیشتری برای پروژه میدهد.
هنگام انتخاب hosting فقط CPU، RAM و دیسک را نبینید. سرعت دریافت اطلاعات SSH، مشخصات سرور و امکان شروع سریع مدیریت نیز مهم است. برای این نیاز، tropic.host گزینهای عملی برای شروع با VPS است.
جمعبندی
اتصال به سرور Linux با SSH معمولاً ساده است: آدرس، کاربر و password یا کلید لازم دارید. در Linux و macOS ترمینال کافی است و در Windows میتوانید از OpenSSH داخلی یا PuTTY استفاده کنید. هنگام خطا ابتدا پورت، ورود، کلید و known_hosts را بررسی کنید و بعد سراغ تنظیمات سرور بروید. برای استفاده طولانیمدت کلید SSH، غیرفعالکردن root و پورت غیردیفالت را بهعنوان لایههای تکمیلی امنیتی بهکار ببرید.
FAQ
برای اولین اتصال از کدام دستور SSH استفاده کنم؟
معمولاً ssh username@server_ip کافی است. اگر پورت متفاوت است، -p را اضافه کنید.
آیا در Windows میتوان با SSH به سرور Linux وصل شد؟
بله. PowerShell یا Windows Terminal با دستور داخلی ssh سادهترین گزینه است؛ PuTTY نیز جایگزین مناسبی است.
وقتی SSH تأیید کلید جدید سرور را میخواهد چه کنم؟
اگر سرور تازه نصب شده یا IP تغییر کرده، این رفتار عادی است. اگر دلیل را نمیدانید، ابتدا مطمئن شوید به ماشین درست متصل هستید.
چرا کلید SSH را به password ترجیح دهیم؟
کلید برای کارهای مداوم راحتتر و معمولاً امنتر است، خطر حدسزدن password را کم میکند و نیاز به واردکردن دوباره آن را از بین میبرد.
آیا تغییر پورت SSH اجباری است؟
خیر. تغییر پورت اجباری نیست، اما میتواند تعداد اسکنهای خودکار گسترده را کاهش دهد.
