آموزش اتصال به سرور لینوکس با SSH از طریق دسکتاپ

آموزش اتصال به سرور لینوکس با SSH از طریق دسکتاپ

برای اینکه بتوانید به سرور لینوکس دسترسی داشته باشید و از راه دور آن را مدیریت کنید باید از یک پروتکل امن مثل SSH استفاده کنید و با دستورات آن آشنا باشید. اما نحوه استفاده از SSH و دستوران ان چگونه است. اگر این سوال شما هم هست این مقاله برای شما است.

0 15 مهر 1403 آخرین بروزرسانی: 26 فروردین 1404

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

SSH چیست؟

پروتکل SSH مخفف Secure Shell یا Secure Socket Shell به معنای پوسته سوکت امن، برای اتصال رمزگذاری‌شده (encrypted connections) و امن به یک کامپیوتر یا سرور از راه دور (ریموت) با یک رابط متنی به کار می‌رود. یعمنی به‌جای ارسال اطلاعات به‌صورت متن ساده، از رمزگذاری استفاده می‌کند که امنیت بالایی را برای انتقال داده‌ها فراهم می‌کند. SSH از پورت پیش‌فرض 22 استفاده کرده و  برای مدیریت سرورها، انتقال فایل‌ها و اجرای دستورات راه دور به کار می‌رود. با یک اتصال SSH امن، یک shell session شروع شده که این امکان را می‌دهد تا با تایپ دستورات (Commands) در کلاینت روی کامپیوتر لوکال خود، سرور را دستکاری کنید.

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

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

SSH چگونه کار می‌کند؛ اتصال به سرور لینوکس با SSH

  • کامپوننت سمت کلاینت (Client-side component): یک کامپوننت سمت کلاینت، یک برنامه یا نرم‌افزار است که برای اتصال به یک ماشین دیگر استفاده می‌شود. کلاینت از اطلاعات میزبان ریموت برای شروع اتصال از طریق برنامه استفاده می‌کند؛ اگر اعتبارنامه‌ها تأیید شوند، برنامه یک اتصال رمزگذاری‌شده برقرار می‌کند.
  • کامپوننت سمت سرور (Server-side component): در سمت سرور، یک دیمون SSH (SSH daemon) وجود دارد که به‌طور مداوم به یک پورت TCP/IP خاص (شماره پورت پیش‌فرض SSH 22 است) برای درخواست‌های احتمالی اتصال کلاینت گوش می‌دهد. هنگامی که یک کلاینت از طریق پورت تعریف‌شده، اتصالی را آغاز می‌کند، دیمون SSH با نسخه‌های نرم‌افزار و پروتکلی که پشتیبانی می‌کند، پاسخ می‌دهد. نسخه پروتکل پیش‌فرض برای ارتباط SSH نسخه 2 است.
  • تبادل کلید (Key exchange): کلاینت و سرور کلیدهای رمزنگاری را برای ایجاد یک کانال ارتباطی امن تبادل می‌کنند. کلیدها به رمزگذاری ارتباطات بعدی کمک می‌کنند.
  • احراز هویت (Authentication): هنگام برقراری اتصال، کلاینت داده‌های شناسایی (نام کاربری/رمز عبور یا کلیدهای SSH) را به سرور ارائه می‌دهد؛ اگر اعتبارنامه‌های ارائه‌شده صحیح باشند، SSH یک جلسه ارتباطی رمزگذاری‌شده جدید ایجاد می‌کند.

پیش‌نیازها برای اتصال به SSH در سرور لینوکس

قبل‌ از اتصال به SSH در سرور لینوکس، باید مطمئن شوید که موارد زیر فراهم است.

  • دسترسی به سرور: باید به اطلاعات سرور شامل آدرس آی‌پی یا نام دامنه، نام کاربری و رمز عبور یا کلید SSH دسترسی داشته باشید.
  • فعال‌بودن SSH روی سرور: سرویس SSH (معمولاً OpenSSH) باید روی سرور هدف نصب و فعال باشد. در بیشتر سرورهای لینوکسی، SSH به‌صورت پیش‌فرض نصب است.
  • دسترسی به اینترنت: برای اتصال به سرور از طریق شبکه، باید به اینترنت یا شبکه‌ای که سرور در آن قرار دارد، دسترسی داشته باشید.
  • نرم‌افزار کلاینت SSH: برای برقراری ارتباط با سرور، باید یک نرم‌افزار کلاینت SSH مانند OpenSSH روی سیستم شما نصب شده باشد. در اکثر سیستم‌عامل‌های لینوکسی و macOS این نرم‌افزار به‌صورت پیش‌فرض نصب است؛ اما برای کاربران ویندوز می‌توان از ابزارهایی مانند PuTTY استفاده کرد.

قبلا گفتیم که هاست لینوکس چیست و چه امکاناتی دارد؟ هاست یا وب هاست لینوکس به ارائه دهندگان هاستی اشاره دارد که روی سرور خود از سیستم عامل (Operating System) لینوکس استفاده می‌کنند. این سرویس میزبانی، به دلیل ارزان بودن و انعطاف‌پذیری بالا مورد توجه افراد قرار گرفته است.

راست چین کلود ارائه دهنده هاست لینوکس با قیمت ارزان، آپتایم 99.9% و امنیت بالا است که از پیشرفته‌ترین و جدیدترین سخت افزارهای نسل  10 شرکت HPE استفاده می‌کند و وب سرور آن Lite Speed Pro است. 

پیشنهاد ویژه
پلن 2 لینوکس
حجم 5 گیگابایت رم 2 گیگ پردازنده 2 هسته 1 عدد ادان دامین

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

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

نصب کامپوننت SSH روی macOS

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

ssh -v

Picture1 آموزش اتصال به سرور لینوکس با SSH از طریق دسکتاپ

این دستور نسخه نصب‌شده SSH را نشان می‌دهد. برای استفاده از یک برنامه SSH شخص ثالث، مانند OpenSSH، از دستور Homebrew زیر استفاده کنید.

brew install openssh

این نصب اجازه می‌دهد که یک نسخه جداگانه از کامپوننت SSH پیش‌فرض سیستم را مدیریت کنید. به عنوان یک راهکار جایگزین برای اتصال به سرور با Putty می‌توانید PuTTY را روی macOS نصب کنید تا از یک کلاینت SSH مبتنی بر رابط گرافیکی استفاده کنید.

برای فعال‌کردن ورود از راه دور سرور SSH روی سیستم عامل macOS، مراحل زیر را انجام دهید.

  1. به تنظیمات سیستم (System Settings) بروید؛
  2. در منوی سمت چپ روی General کلیک کنید؛
  3. Sharing را پیدا و باز کنید.

فعال‌کردن ورود از راه دور سرور SSH؛ اتصال به سرور لینوکس با ریموت دسکتاپ

4. Remote Login را فعال کنید تا دسترسی SSH به دستگاه مجاز شود.

فعالسازی Remote Login؛ اتصال به سرور لینوکس با SSH

نصب کامپوننت SSH روی لینوکس

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

  1. برای نصب کامپوننت کلاینت، یکی از دستورات زیر را روی ماشین کلاینت اجرا کنید.

برای سیستم‌های مبتنی بر Debian/Ubuntu از دستور:

sudo apt install openssh-client

و برای سیستم‌های مبتنی بر Red Hat (مانند CentOS یا Fedora) از دستور زیر استفاده کنید.

sudo dnf install openssh-clients

sudo yum install openssh-clients

  1. سپس کامپوننت سرور را روی ماشین سرور نصب کنید.

برای سیستم‌های مبتنی بر Debian/Ubuntu از دستور:

sudo apt install openssh-server

و برای سیستم‌های مبتنی بر Red Hat (مانند CentOS یا Fedora) از دستور زیر استفاده کنید:

sudo dnf install openssh-server

sudo yum install openssh-server

  1. پس‌از نصب کامپوننت‌ها، سرویس SSH به‌طور خودکار شروع می‌شود. وضعیت سرویس را با این دستور مشاهده کنید.

systemctl status sshd

مشاهده فعال بودن وضعیت سرویس SSH؛ اتصال به SSH در سرور لینوکس

درصورتی‌که سرویس درحال اجرا نیست، آن را با دستور زیر اجرا کنید.

sudo systemctl start sshd

این دستور خروجی چاپ نمی‌کند.

  1. برای اینکه سرویس به‌طور خودکار در هنگام بوت‌شدن سیستم شروع شود، دستور زیر را اجرا کنید.

sudo systemctl enable sshd

فعال‌کردن سرویس sshd، آن را در طول فرایند بوت‌شدن، استارت می‌زند.

نکته‌ای که باید توجه داشته باشید این است که در برخی سیستم‌ها، sshd نام مستعار سرویس است و دستورات کار نخواهند کرد. در این صورت، در دستورات قبلی sshd را با ssh جایگزین کنید.

نصب کامپوننت SSH در ویندوز

در این بخش از آموزش اتصال به سرور لینوکس می‌رسی به بحث نصب کامپوننتssh در ویندوز، SSH یک کامپوننت پیش‌فرض در سیستم‌های ویندوز نیست. ویندوز 10 و نسخه‌های بعدی شامل یک برنامه بومی OpenSSH هستند. برای فعال‌کردن SSH، مراحل زیر را انجام دهید:

  1. Settings -> Apps & features -> Optional features را باز کنید.

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

2. روی دکمه Add a feature کلیک کنید.

Picture6 آموزش اتصال به سرور لینوکس با SSH از طریق دسکتاپ

3. برنامه OpenSSH را جستجو و نصب کنید.

نصب OpenSSH

به‌عنوان جایگزین، یک گزینه محبوب نصب PuTTY در ویندوز یا استفاده از یک توزیع لینوکس از طریق ویژگی WSL (Windows Subsystem for Linux یا زیرسیستم ویندوز برای لینوکس) است.

نحوه اتصال به سرور لینوکس با SSH

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

پنجره خط فرمان/ترمینال را باز و دستور ssh زیر را اجرا کنید.

ssh [username]@[host_ip_address]

به جای username، نام کاربری خود و به‌جای server_ip، آدرس آی‌پی یا نام دامنه سرور را وارد کنید. به‌عنوان‌مثال

ssh root@192.168.1.100

اگر نام کاربری با دستگاه لوکال یکسان است، نام کاربری را از دستور حذف کنید. برای آزمایش نصب صحیح SSH، سعی کنید یک اتصال SSH به لوکال هاست ایجاد کنید. هنگام اتصال به سرور لینوکس با SSH برای اولین بار، پیامی ظاهر می‌شود که از شما می‌خواهد اتصال را تأیید کنید. برای تأیید شناسایی سرور راه دور روی دستگاه لوکال، yes را تایپ کنید و Enter را فشار دهید.

پس‌از این کار، SSH کلید سرور را در فایل ~/.ssh/known_hosts ذخیره می‌کند تا در دفعات بعدی نیازی به تأیید مجدد آن نباشد.

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

رمز عبور را به‌محض درخواست وارد کنید و Enter را فشار دهید. توجه داشته باشید که صفحه نمایش کاراکترها را حین تایپ‌کردن نشان نمی‌دهد.

34 آموزش اتصال به سرور لینوکس با SSH از طریق دسکتاپ

نکته: اگر کامپیوتری که می‌خواهید به آن متصل شوید در همان شبکه قرار دارد، بهتر است به‌جای آدرس IP عمومی از آدرس IP خصوصی استفاده کنید.

علاوه‌براین، اطمینان حاصل کنید که پورت TCP صحیح به درخواست‌های اتصال گوش می‌دهد و تنظیمات port forwarding صحیح است. شماره پورت پیش‌فرض 22 است؛ مگر اینکه پیکربندی تغییر کرده باشد. شما می‌توانید شماره پورت را هم پس از آدرس IP میزبان اضافه کنید.

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

ssh [username]@[host_ip_address]:[port]

ssh [username]@[host_ip_address] -p [port]

به‌عنوان‌مثال:

ssh user@192.168.1.100 -p 22

اگر در اتصال به سرور راه دور مشکلی وجود دارد، اطمینان حاصل کنید که:

  • آدرس IP دستگاه راه دور صحیح است؛
  • پورتی که دیمون SSH به آن گوش می‌دهد توسط فایروال مسدود نشده یا به‌درستی فوروارد شده است؛
  • نام کاربری و رمز عبور صحیح هستند؛
  • نرم‌افزار SSH به‌درستی نصب شده است.

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

پس‌از اتمام کار، می‌توانید با واردکردن دستور exit از سرور خارج شوید. این دستور اتصال شما به سرور را قطع می‌کند و شما را به ترمینال لوکال بازمی‌گرداند.

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

  • چطور می‌توان با SSH به سرور لینوکس دسترسی داشت؟

برای اتصال به سرور لینوکس با SSH، شما به یک کلاینت SSH (مانند OpenSSH) نیاز دارید. با استفاده از دستور ssh username@server_ip، می‌توانید به سرور متصل شوید. اگر رمز عبور یا کلید SSH در اختیار دارید، می‌توانید به‌راحتی وارد سرور شوید.

نظر شما چیست؟