SSH چیست؟ آموزش اتصال به سرور لینوکس با PuTTY و Terminal
مقدمه:
SSH روشی امن برای اتصال از راه دور به سرور لینوکس و اجرای فرمانهای مدیریتی است. برای برقراری اتصال، معمولاً به IP سرور، نام کاربری، پورت SSH و رمز عبور یا کلید خصوصی نیاز دارید. کاربران ویندوز میتوانند از PuTTY یا ترمینال داخلی سیستم استفاده کنند؛ در لینوکس و macOS نیز فرمان ssh در Terminal در دسترس است. پیش از ورود، باید اصالت کلید میزبان را بررسی کنید و پس از اتصال نیز تنظیمات امنیتی اولیه را انجام دهید.
فهرست مطالب پیشنهادی
- SSH چیست و چگونه کار میکند؟
- اطلاعات لازم برای اتصال به سرور
- تفاوت PuTTY و Terminal
- آموزش اتصال با PuTTY
- آموزش اتصال با Terminal
- ورود با کلید SSH
- فرمانهای اولیه پس از اتصال
- نکات امنیتی مهم
- رفع خطاهای متداول
- چک لیست اتصال
- جمع بندی و سؤالات متداول
SSH چیست و چه کاربردی دارد؟
SSH مخفف Secure Shell است و برای برقراری ارتباط رمزنگاریشده میان کاربر و یک سیستم راه دور استفاده میشود. مدیر سرور میتواند از طریق این ارتباط فرمان اجرا کند، سرویسها را مدیریت کند، فایل انتقال دهد و وضعیت سیستم را بررسی کند.
OpenSSH مجموعهای از ابزارهای مربوط به اتصال و انتقال امن اطلاعات است. سرویس sshd روی سرور منتظر درخواست اتصال میماند و پس از احراز هویت، نشست مدیریتی کاربر را ایجاد میکند. این ابزار از روشهایی مانند رمز عبور و کلید عمومی برای احراز هویت پشتیبانی میکند. Ubuntu Server documentation
SSH معمولاً برای مدیریت سرور مجازی، سرور اختصاصی، ماشینهای ابری و تجهیزات شبکه به کار میرود. استفاده از آن به این معنا نیست که تمام عملیات سرور بدون خطر است؛ فرمانی که پس از ورود اجرا میکنید میتواند فایلها، سرویسها یا تنظیمات سیستم را تغییر دهد.
اگر بهتازگی سرور لینوکسی تهیه کردهاید و درباره اطلاعات ورود، امنیت اولیه یا روش مدیریت آن مطمئن نیستید، میتوانید از کارشناسان شرکت تجارت الکترونیک نوژن مشاوره بگیرید تا وضعیت دسترسی و نیازهای فنی سرور بررسی شود.
[لینک داخلی پیشنهادی: انکرتکست «سرور مجازی لینوکس چیست» ← مقاله معرفی VPS لینوکس و کاربردهای آن]
SSH چگونه ارتباط را امن میکند؟
هنگام شروع اتصال، کلاینت و سرور برای ایجاد کانال رمزنگاریشده با یکدیگر مذاکره میکنند. پس از تشکیل کانال، کاربر با رمز عبور، کلید خصوصی یا روش دیگری که روی سرور مجاز شده است احراز هویت میشود.
رمزنگاری مسیر ارتباط، مانع از آن میشود که اطلاعات نشست به شکل متن ساده منتقل شوند. به همین دلیل SSH جایگزین مناسبتری برای ابزارهای قدیمی مدیریت از راه دور است که اطلاعات حساس را بدون حفاظت کافی جابهجا میکردند. Ubuntu Server documentation
کلاینت و سرور SSH
ابزارهایی مانند PuTTY و فرمان ssh نقش کلاینت را دارند. آنها از کامپیوتر شما درخواست اتصال را به سرور ارسال میکنند.
در سمت مقابل، سرویس SSH Server یا sshd باید فعال باشد و روی یک پورت مشخص درخواستها را دریافت کند. اگر این سرویس متوقف باشد یا فایروال پورت آن را مسدود کند، اتصال برقرار نخواهد شد.
برای اتصال SSH به چه اطلاعاتی نیاز داریم؟
پیش از شروع، اطلاعات زیر را از ارائهدهنده سرور یا مدیر زیرساخت دریافت کنید:
- آدرس IP یا نام میزبان سرور
- نام کاربری معتبر
- رمز عبور یا فایل کلید خصوصی
- شماره پورت سرویس SSH
- اثر انگشت کلید میزبان، در صورت ارائه
- اجازه دسترسی شبکهای به پورت موردنظر
نام کاربری در توزیعها و سرویسهای مختلف یکسان نیست. ممکن است کاربری مانند root، ubuntu، debian یا نام اختصاصی ساخته شده توسط مدیر سیستم در اختیار شما قرار گیرد؛ بنابراین نام کاربری را حدس نزنید.
پورت SSH
پورت باید مطابق تنظیمات واقعی سرور وارد شود. اگر مدیر سیستم پورت سرویس را تغییر داده است، اتصال به پورت دیگری نتیجهای نخواهد داشت.
تغییر پورت به تنهایی جایگزین استفاده از کلید SSH، فایروال و محدود کردن دسترسیها نیست. این تغییر فقط بخشی از سیاست دفاعی سرور محسوب میشود.
بررسی روشن بودن سرور
قبل از عیبیابی PuTTY یا Terminal، مطمئن شوید سرور روشن است و IP آن تغییر نکرده است. در صورت دسترسی به پنل ارائهدهنده، وضعیت ماشین و کنسول اضطراری را بررسی کنید.
اگر سرور پشت فایروال یا شبکه خصوصی قرار دارد، ممکن است ابتدا به VPN سازمانی یا یک سرور واسط نیاز داشته باشید.
مقایسه PuTTY و Terminal برای اتصال SSH
PuTTY یک نرمافزار گرافیکی شناختهشده برای ایجاد نشستهای SSH در ویندوز است. Terminal نیز به شما اجازه میدهد با فرمان استاندارد ssh و بدون تعریف نشست در یک رابط گرافیکی متصل شوید.
| معیار | PuTTY | Terminal و OpenSSH |
|---|---|---|
| شیوه استفاده | رابط گرافیکی | خط فرمان |
| سیستمعامل رایج | ویندوز | ویندوز، لینوکس و macOS |
| ذخیره تنظیمات اتصال | از طریق Saved Sessions | با فایل تنظیمات SSH |
| تعیین IP و پورت | در فرم Session | با آرگومانهای فرمان |
| انتخاب کلید خصوصی | از تنظیمات Authentication | با گزینه -i یا فایل تنظیمات |
| مناسب برای | کاربران علاقهمند به رابط گرافیکی | کاربران خط فرمان و اسکریپتها |
| نصب جداگانه | ممکن است لازم باشد | در بسیاری از سیستمها موجود است |
هیچکدام در همه شرایط بر دیگری برتری مطلق ندارد. اگر مدیریت چند سرور و اجرای فرمانهای تکرارشونده برایتان مهم است، Terminal و فایل تنظیمات SSH انعطاف بیشتری دارند. اگر ترجیح میدهید اطلاعات هر نشست را در یک پنجره گرافیکی وارد و ذخیره کنید، PuTTY انتخاب سادهای است.
برای مشاهده سرویسهای قابل مدیریت با SSH و انتخاب منابع متناسب با پروژه، میتوانید صفحه سرور مجازی شرکت تجارت الکترونیک نوژن را بررسی کنید. انتخاب نوع سیستمعامل و مدیریتشده یا مدیریتنشده بودن سرویس باید براساس دانش فنی و نیاز پروژه انجام شود.
آموزش اتصال به سرور لینوکس با PuTTY
PuTTY را از وب سایت رسمی پروژه یا منبع معتبر سیستمعامل دریافت کنید. از نسخههایی که در سایتهای ناشناس همراه با فایلهای اضافی منتشر میشوند استفاده نکنید.
مرحله اول: اجرای PuTTY
پس از نصب، برنامه را باز کنید. صفحه اصلی معمولاً بخش Session را نشان میدهد که اطلاعات مقصد در آن وارد میشود.
در کادر Host Name آدرس IP یا نام میزبان را بنویسید. اگر لازم است نام کاربری نیز همراه مقصد ذخیره شود، میتوانید آن را از بخشهای مربوط به تنظیمات نشست تعیین کنید.
مرحله دوم: تنظیم پورت و نوع اتصال
شماره پورت اعلام شده را در کادر Port وارد و نوع اتصال را روی SSH قرار دهید. مقدار پورت را براساس اطلاعات واقعی سرور انتخاب کنید، نه نمونهای که در یک آموزش مشاهده کردهاید.
اگر میخواهید تنظیمات برای دفعات بعد ذخیره شود، نامی در بخش Saved Sessions وارد کنید و گزینه ذخیره را بزنید. رمز عبور را در فایل یا عنوان نشست ذخیره نکنید.
مرحله سوم: شروع اتصال
روی گزینه Open کلیک کنید. در اولین اتصال، PuTTY اطلاعات کلید میزبان را نمایش میدهد و از شما میخواهد درباره اعتماد به سرور تصمیم بگیرید.
اثر انگشت نمایشدادهشده را با اطلاعات ارائهشده از منبع قابل اعتماد مقایسه کنید. صرفاً به دلیل مشاهده یک پنجره هشدار، کلید ناشناس را بدون بررسی تأیید نکنید.
مرحله چهارم: وارد کردن نام کاربری و رمز
پس از باز شدن پنجره ترمینال، نام کاربری را وارد کنید. سپس رمز عبور درخواست میشود.
هنگام نوشتن رمز ممکن است هیچ کاراکتر یا علامتی روی صفحه دیده نشود. این رفتار طبیعی است؛ رمز را دقیق وارد کنید و Enter بزنید.
اتصال PuTTY با کلید خصوصی
اگر ورود با کلید انجام میشود، از تنظیمات نشست وارد بخش SSH و تنظیمات Authentication شوید و فایل کلید خصوصی را انتخاب کنید. قالب فایل موردنیاز باید با نسخه و تنظیمات PuTTY سازگار باشد.
پس از انتخاب کلید، به صفحه Session برگردید و نشست را ذخیره کنید. اگر کلید با Passphrase محافظت شده باشد، هنگام استفاده باید آن عبارت را وارد کنید.
آموزش اتصال به سرور لینوکس با Terminal
در لینوکس و macOS برنامه Terminal را باز کنید. در ویندوز نیز میتوانید از Windows Terminal، PowerShell یا Command Prompt استفاده کنید؛ مشروط بر اینکه کلاینت OpenSSH روی سیستم فعال باشد.
اتصال با IP و نام کاربری
ساختار پایه فرمان به شکل زیر است:
ssh username@server_ip
برای نمونه، اگر نام کاربری ubuntu و آدرس سرور 203.0.113.10 باشد، فرمان آزمایشی چنین است:
ssh ubuntu@203.0.113.10
این IP صرفاً نمونه مستندسازی است و باید با آدرس واقعی سرور خود جایگزین شود.
اتصال با پورت سفارشی
اگر سرویس SSH روی پورت دیگری اجرا میشود، از گزینه -p با حرف کوچک استفاده کنید:
ssh -p PORT username@server_ip
راهنمای رسمی OpenSSH مقصد را بهصورت [user@]hostname میپذیرد و گزینه -p برای تعیین پورت اتصال استفاده میشود. OpenBSD manual pages
تأیید کلید میزبان
در اولین اتصال، Terminal اثر انگشت کلید میزبان را نشان میدهد. پس از مقایسه آن با اثر انگشت معتبر، در صورت تطابق عبارت تأیید را وارد کنید.
اگر بعداً هشدار تغییر کلید میزبان دریافت کردید، هشدار را بدون بررسی حذف نکنید. تغییر کلید ممکن است به دلیل نصب مجدد سیستمعامل باشد، اما میتواند نشانه اتصال به مقصد اشتباه یا تغییر غیرمنتظره مسیر نیز باشد.
وارد کردن رمز عبور
پس از تأیید میزبان، رمز عبور کاربر درخواست میشود. هنگام تایپ، معمولاً چیزی نمایش داده نمیشود.
رمز را کپی میکنید، مراقب فاصله ابتدا یا انتهای آن باشید. اگر چند بار ورود ناموفق داشتید، ادامه تلاش ممکن است باعث مسدود شدن موقت IP توسط ابزارهای امنیتی شود.
اتصال با کلید SSH
ورود با کلید عمومی و خصوصی، روش مناسبتری برای مدیریت دسترسی است. کلید عمومی روی سرور قرار میگیرد و کلید خصوصی باید فقط در اختیار کاربر مجاز باقی بماند.
مستندات Ubuntu استفاده از کلیدهای SSH را توضیح میدهد و برای ساخت کلید، الگوریتم Ed25519 را بهعنوان یکی از گزینههای پیشنهادی معرفی میکند. Ubuntu Server documentation
ساخت کلید جدید
روی کامپیوتر شخصی فرمان زیر را اجرا کنید:
ssh-keygen -t ed25519
مسیر ذخیرهسازی را تأیید و برای کلید خصوصی یک Passphrase مناسب تعیین کنید. خالی گذاشتن Passphrase ممکن است استفاده خودکار را سادهتر کند، اما در صورت سرقت فایل کلید، لایه محافظتی کمتری خواهید داشت.
انتقال کلید عمومی به سرور
اگر ورود رمزی فعال است و ابزار ssh-copy-id در دسترس قرار دارد، میتوانید از فرمان زیر استفاده کنید:
ssh-copy-id username@server_ip
این ابزار محتوای کلید عمومی را برای حساب مقصد در فایل مجاز کلیدها قرار میدهد. مستندات Ubuntu نیز مسیر متداول authorized_keys و استفاده از ssh-copy-id را شرح داده است. Ubuntu Server documentation
پیش از غیرفعال کردن ورود رمزی، یک پنجره جدید باز کنید و ورود با کلید را آزمایش کنید. نشست فعلی را تا زمانی که مطمئن نشدهاید کلید بهدرستی کار میکند، نبندید.
اتصال با کلید مشخص
اگر کلید در مسیر پیشفرض نیست، گزینه -i را به کار ببرید:
ssh -i /path/to/private_key username@server_ip
گزینه -i فایل هویت یا کلید خصوصی را مشخص میکند. این گزینه در راهنمای رسمی کلاینت OpenSSH تعریف شده است. OpenBSD manual pages
مجوز فایل کلید خصوصی در لینوکس و macOS باید محدود باشد. در صورت نمایش خطای مجوز، تنظیمات فایل را بررسی کنید؛ اما بدون درک مالکیت و مسیر فایل، مجوزهای گسترده و ناامن اعمال نکنید.
[لینک داخلی پیشنهادی: انکرتکست «ساخت و فعالسازی کلید SSH» ← مقاله آموزش ورود امن به سرور با SSH Key]
فرمانهای اولیه پس از اتصال
پس از ورود، ابتدا هویت کاربر و وضعیت سیستم را بررسی کنید:
whoami
hostname
pwd
برای مشاهده نسخه و اطلاعات سیستمعامل میتوانید فایل مربوط به مشخصات توزیع را بخوانید:
cat /etc/os-release
برای بررسی فضای دیسک و حافظه نیز میتوان از فرمانهای زیر استفاده کرد:
df -h
free -h
این فرمانها فقط اطلاعات عمومی سیستم را نمایش میدهند. پیش از اجرای فرمانهایی که سرویسها، کاربران، فایروال یا فایلهای سیستمی را تغییر میدهند، از تأثیر آنها مطمئن شوید.
[لینک داخلی پیشنهادی: انکرتکست «فرمانهای پرکاربرد لینوکس» ← مقاله دستورات ضروری مدیریت سرور لینوکس]
اقدامات امنیتی بعد از اولین اتصال
سیستم را به روزرسانی کنید
فرمان به روزرسانی به توزیع لینوکس بستگی دارد. قبل از اجرای ارتقای گسترده روی سرور عملیاتی، وضعیت سرویسها، فضای دیسک و بکاپ را بررسی کنید.
ممکن است برخی بستهها پس از به روزرسانی به راهاندازی مجدد سرویس یا سرور نیاز داشته باشند. تغییرات را در زمان مناسب انجام دهید.
کاربر مدیریتی جداگانه بسازید
استفاده روزمره از حسابی با بیشترین سطح دسترسی، دامنه خطا را افزایش میدهد. یک کاربر اختصاصی بسازید و فقط در مواقع لازم از sudo استفاده کنید.
قبل از محدود کردن حساب اولیه، ورود کاربر جدید و سطح دسترسی آن را در یک نشست جداگانه آزمایش کنید.
فایروال را با احتیاط تنظیم کنید
پیش از فعال کردن فایروال، دسترسی پورت SSH واقعی را مجاز کنید. مسدود کردن پورت فعال میتواند دسترسی راه دور شما را قطع کند.
اگر کنسول اضطراری ارائهدهنده را در اختیار ندارید، تغییرات شبکه و فایروال را با احتیاط بیشتری انجام دهید.
ورود با کلید را آزمایش کنید
کلید خصوصی را در فضای عمومی، پیامرسان یا مخزن کد قرار ندهید. از آن نسخه پشتیبان رمزگذاریشده تهیه و دسترسی فایل را محدود کنید.
غیرفعال کردن ورود با رمز فقط پس از آزمایش قطعی ورود با کلید انجام شود. یک اشتباه در این مرحله میتواند دسترسی مدیریتی را از بین ببرد.
[لینک داخلی پیشنهادی: انکرتکست «کارهای ضروری بعد از خرید VPS اوبونتو» ← چکلیست امنیت اولیه سرور مجازی]
[لینک داخلی پیشنهادی: انکرتکست «آموزش تغییر رمز سرور لینوکس» ← مقاله تغییر رمز کاربران لینوکس]
رفع خطاهای رایج اتصال SSH
خطای Connection Timed Out
این خطا معمولاً نشان میدهد پاسخ مناسبی از IP و پورت مقصد دریافت نشده است. خاموش بودن سرور، اشتباه بودن IP، مسدود بودن پورت در فایروال یا مشکل مسیر شبکه از علتهای احتمالی هستند.
IP و پورت را بررسی کنید و از پنل ارائهدهنده وضعیت سرور را ببینید. تغییر تصادفی تنظیمات کلاینت معمولاً مشکل فایروال سمت سرور را حل نمیکند.
خطای Connection Refused
این پیام میتواند نشان دهد دستگاه مقصد در دسترس است، اما روی پورت انتخابشده سرویسی پاسخ نمیدهد. توقف سرویس SSH، انتخاب پورت اشتباه یا رد شدن اتصال توسط تنظیمات شبکه از علتهای محتمل هستند.
با کنسول سرور وضعیت sshd و پورت شنونده را بررسی کنید. اگر تجربه کافی ندارید، پیش از تغییر فایل تنظیمات از آن نسخه پشتیبان بگیرید.
خطای Permission Denied
در این وضعیت، معمولاً ارتباط شبکه برقرار شده اما احراز هویت موفق نبوده است. نام کاربری اشتباه، رمز نادرست، انتخاب کلید نامرتبط یا ثبت نشدن کلید عمومی در حساب مقصد را بررسی کنید.
بین نام کاربری سیستم و نام نمایشی سرویس تفاوت وجود دارد. همچنین کلید مربوط به یک کاربر الزاماً برای ورود به حساب کاربر دیگر معتبر نیست.
هشدار Host Key Has Changed
این هشدار یعنی کلید میزبان فعلی با رکورد قبلی ذخیرهشده در کامپیوتر شما یکسان نیست. نصب مجدد سیستمعامل، تغییر سرور یا IP بازیافتی ممکن است علت مشروع آن باشد.
قبل از حذف رکورد قبلی، اثر انگشت جدید را از طریق پنل یا پشتیبانی معتبر تأیید کنید. نادیده گرفتن این هشدار بدون بررسی، اقدام امنی نیست.
قطع شدن نشست هنگام اجرای عملیات طولانی
اگر اتصال اینترنت قطع شود، پردازشی که مستقیماً به نشست وابسته است ممکن است متوقف شود. برای کارهای طولانی میتوان از ابزارهایی مانند tmux یا screen استفاده کرد تا نشست پس از قطع ارتباط نیز باقی بماند. مستندات Ubuntu نیز این ابزارها را برای مدیریت اتصالهای ناپایدار پیشنهاد میکند. Ubuntu Server documentation
چک لیست اتصال امن به سرور لینوکس
- IP یا نام میزبان از منبع معتبر دریافت شده است.
- نام کاربری صحیح مشخص است.
- پورت واقعی SSH بررسی شده است.
- سرور روشن و از شبکه قابل دسترس است.
- PuTTY از منبع رسمی دریافت شده است.
- اثر انگشت کلید میزبان پیش از تأیید بررسی شده است.
- کلید خصوصی در فضای عمومی ذخیره نشده است.
- برای کلید خصوصی Passphrase مناسب در نظر گرفته شده است.
- ورود با کلید پیش از غیرفعال کردن رمز آزمایش شده است.
- یک نشست فعال هنگام تغییر تنظیمات SSH باز نگه داشته شده است.
- پورت SSH پیش از فعالسازی فایروال مجاز شده است.
- از فایل تنظیمات و اطلاعات ضروری نسخه پشتیبان وجود دارد.
- دستورات حساس بدون آگاهی از نتیجه اجرا نمیشوند.
جمع بندی
در پاسخ به سؤال «SSH چیست؟ آموزش اتصال به سرور لینوکس با PuTTY و Terminal» میتوان گفت SSH کانالی رمزنگاریشده برای ورود و مدیریت سیستم راه دور است. اتصال با PuTTY از طریق یک رابط گرافیکی انجام میشود، در حالی که Terminal فرمان استاندارد ssh را در اختیار کاربر قرار میدهد.
برای اتصال به IP، نام کاربری، پورت و یک روش احراز هویت نیاز دارید. استفاده از کلید SSH، بررسی اثر انگشت میزبان و محدود کردن دسترسیها، مدیریت سرور را امنتر میکند؛ اما هر تغییر امنیتی باید ابتدا آزمایش شود تا دسترسی شما قطع نشود.
بعد از اولین ورود، ایجاد کاربر مناسب، بررسی بهروزرسانیها، تنظیم محتاطانه فایروال و نگهداری امن کلید خصوصی را در برنامه قرار دهید. در سرورهای عملیاتی نیز قبل از تغییر فایلهای سیستمی یا سرویس SSH بکاپ تهیه کنید.
برای خرید سرور مجازی لینوکس، بررسی دسترسی SSH یا دریافت خدمات مدیریت و ایمنسازی سرور میتوانید با شرکت تجارت الکترونیک نوژن در ارتباط باشید. سطح خدمات را متناسب با دانش فنی تیم و حساسیت پروژه انتخاب کنید.
سؤالات متداول
آیا برای اتصال به سرور لینوکس حتماً به PuTTY نیاز داریم؟
خیر. در ویندوزهای دارای OpenSSH، لینوکس و macOS میتوان از فرمان ssh در Terminal استفاده کرد. PuTTY برای کاربرانی مناسب است که رابط گرافیکی را ترجیح میدهند.
چرا هنگام وارد کردن رمز SSH چیزی نمایش داده نمیشود؟
ترمینال برای محافظت از رمز، هنگام تایپ هیچ کاراکتر یا ستارهای نشان نمیدهد. رمز را دقیق وارد کنید و Enter بزنید.
آیا تغییر پورت SSH امنیت سرور را کامل میکند؟
خیر. تغییر پورت فقط میتواند بخشی از تلاشهای خودکار را کاهش دهد. کلید SSH، فایروال، محدود کردن کاربران و بهروزرسانی سیستم همچنان ضروری هستند.
چگونه با پورت سفارشی متصل شویم؟
در Terminal از ساختار ssh -p PORT user@host استفاده کنید. در PuTTY نیز شماره پورت را در کادر Port وارد کنید.
آیا میتوان ورود root را غیرفعال کرد؟
بله، اما ابتدا باید یک کاربر مدیریتی دارای دسترسی sudo بسازید و ورود آن را آزمایش کنید. تغییر اشتباه ممکن است دسترسی مدیریتی شما را قطع کند.
خطای Permission Denied به چه معناست؟
یعنی سرور درخواست را دریافت کرده اما احراز هویت موفق نبوده است. نام کاربری، رمز، کلید خصوصی و کلید عمومی ثبتشده برای حساب مقصد را بررسی کنید.
آیا میتوان با SSH فایل انتقال داد؟
بله. ابزارهایی مانند scp و sftp میتوانند از بستر SSH برای انتقال امن فایل استفاده کنند. سطح دسترسی کاربر و مسیر مقصد باید اجازه این عملیات را بدهد.
