برای اینکه بتوانید به سرور لینوکس دسترسی داشته باشید و از راه دور آن را مدیریت کنید باید از یک پروتکل امن مثل SSH استفاده کنید و با دستورات آن آشنا باشید. اما نحوه استفاده از SSH و دستوران ان چگونه است. اگر این سوال شما هم هست این مقاله برای شما است.
روشهای ناامن اتصال به سرورهای لینوکس میتوانند منجر به نفوذ و ازدسترفتن اطلاعات حساس شوند. اما چگونه میتوان بهطور ایمن به سرورهای لینوکس متصل شد؟ پروتکل SSH، با رمزگذاری قوی و احراز هویت مطمئن، راهحل ایدئالی برای این مشکل است. در این مقاله به بررسی SSH، نحوه کارکرد آن، پیشنیازها، دستورات موردنیاز و مراحل اتصال به سرور لینوکس با SSH میپردازیم. در انتها نحوه اتصال به SSH در سرور لینوکس را توضیح میدهیم.
پروتکل SSH مخفف Secure Shell یا Secure Socket Shell به معنای پوسته سوکت امن، برای اتصال رمزگذاریشده (encrypted connections) و امن به یک کامپیوتر یا سرور از راه دور (ریموت) با یک رابط متنی به کار میرود. یعمنی بهجای ارسال اطلاعات بهصورت متن ساده، از رمزگذاری استفاده میکند که امنیت بالایی را برای انتقال دادهها فراهم میکند. SSH از پورت پیشفرض 22 استفاده کرده و برای مدیریت سرورها، انتقال فایلها و اجرای دستورات راه دور به کار میرود. با یک اتصال SSH امن، یک shell session شروع شده که این امکان را میدهد تا با تایپ دستورات (Commands) در کلاینت روی کامپیوتر لوکال خود، سرور را دستکاری کنید.
در اتصال با SSH هم کلاینت و هم سرور در ایجاد یک کانال ارتباطی امن SSH مشارکت دارند. ایجاد یک اتصال به سرور لینوکس با SSH به کامپوننتها و مراحل زیر متکی است.
قبل از اتصال به SSH در سرور لینوکس، باید مطمئن شوید که موارد زیر فراهم است.
قبلا گفتیم که هاست لینوکس چیست و چه امکاناتی دارد؟ هاست یا وب هاست لینوکس به ارائه دهندگان هاستی اشاره دارد که روی سرور خود از سیستم عامل (Operating System) لینوکس استفاده میکنند. این سرویس میزبانی، به دلیل ارزان بودن و انعطافپذیری بالا مورد توجه افراد قرار گرفته است.
راست چین کلود ارائه دهنده هاست لینوکس با قیمت ارزان، آپتایم 99.9% و امنیت بالا است که از پیشرفتهترین و جدیدترین سخت افزارهای نسل 10 شرکت HPE استفاده میکند و وب سرور آن Lite Speed Pro است.
از آنجا که ایجاد یک اتصال به SSH در سرور لینوکس به هر دو کامپوننت کلاینت و سرور نیاز دارد، قبل از هرگونه اتصالی، باید مطمئن شوید که کامپوننتها روی سرورهای لوکال و ریموت نصب شدهاند. برای اتصال به سرور لینوکس با ریموت دسکتاپ بخشهای زیر نحوه نصب یک کامپوننت سمت کلاینت و سمت سرور را بسته به سیستم عامل نشان میدهند.
همانطور که گفته شد، macOS معمولاً کلاینت SSH را از پیش نصبشده دارد. برای بررسی این موضوع، ترمینال را باز کنید و دستور زیر را وارد کنید.
ssh -v
این دستور نسخه نصبشده SSH را نشان میدهد. برای استفاده از یک برنامه SSH شخص ثالث، مانند OpenSSH، از دستور Homebrew زیر استفاده کنید.
brew install openssh
این نصب اجازه میدهد که یک نسخه جداگانه از کامپوننت SSH پیشفرض سیستم را مدیریت کنید. به عنوان یک راهکار جایگزین برای اتصال به سرور با Putty میتوانید PuTTY را روی macOS نصب کنید تا از یک کلاینت SSH مبتنی بر رابط گرافیکی استفاده کنید.
برای فعالکردن ورود از راه دور سرور SSH روی سیستم عامل macOS، مراحل زیر را انجام دهید.
4. Remote Login را فعال کنید تا دسترسی SSH به دستگاه مجاز شود.
برخی از توزیعهای لینوکس بهطور پیشفرض کامپوننت SSH نصبشده ندارند. راهحلهای معمول شامل نصب OpenSSH یا یک راهحل گرافیکی مانند کلاینت PuTTY برای اوبونتو است. نصب OpenSSH نیاز به دسترسی به ترمینال روی سرور و کامپیوتری که برای اتصال استفاده میکنید، دارد. مراحل نصب و راهاندازی کامپوننت کلاینت و سرور OpenSSH بهصورت زیر است:
برای سیستمهای مبتنی بر Debian/Ubuntu از دستور:
sudo apt install openssh-client
و برای سیستمهای مبتنی بر Red Hat (مانند CentOS یا Fedora) از دستور زیر استفاده کنید.
sudo dnf install openssh-clients
sudo yum install openssh-clients
برای سیستمهای مبتنی بر Debian/Ubuntu از دستور:
sudo apt install openssh-server
و برای سیستمهای مبتنی بر Red Hat (مانند CentOS یا Fedora) از دستور زیر استفاده کنید:
sudo dnf install openssh-server
sudo yum install openssh-server
systemctl status sshd
درصورتیکه سرویس درحال اجرا نیست، آن را با دستور زیر اجرا کنید.
sudo systemctl start sshd
این دستور خروجی چاپ نمیکند.
sudo systemctl enable sshd
فعالکردن سرویس sshd، آن را در طول فرایند بوتشدن، استارت میزند.
نکتهای که باید توجه داشته باشید این است که در برخی سیستمها، sshd نام مستعار سرویس است و دستورات کار نخواهند کرد. در این صورت، در دستورات قبلی sshd را با ssh جایگزین کنید.
در این بخش از آموزش اتصال به سرور لینوکس میرسی به بحث نصب کامپوننتssh در ویندوز، SSH یک کامپوننت پیشفرض در سیستمهای ویندوز نیست. ویندوز 10 و نسخههای بعدی شامل یک برنامه بومی OpenSSH هستند. برای فعالکردن SSH، مراحل زیر را انجام دهید:
2. روی دکمه Add a feature کلیک کنید.
3. برنامه OpenSSH را جستجو و نصب کنید.
بهعنوان جایگزین، یک گزینه محبوب نصب PuTTY در ویندوز یا استفاده از یک توزیع لینوکس از طریق ویژگی WSL (Windows Subsystem for Linux یا زیرسیستم ویندوز برای لینوکس) است.
در این بخش از آموزش اتصال به سرور لینوکس، پس از نصب و راهاندازی کلاینت و سرور 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 را فشار دهید. توجه داشته باشید که صفحه نمایش کاراکترها را حین تایپکردن نشان نمیدهد.
نکته: اگر کامپیوتری که میخواهید به آن متصل شوید در همان شبکه قرار دارد، بهتر است بهجای آدرس 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
اگر در اتصال به سرور راه دور مشکلی وجود دارد، اطمینان حاصل کنید که:
اگر از احراز هویت مبتنی بر کلید SSH استفاده میکنید و کلید عمومی خود را قبلاً روی سرور قرار دادهاید، دیگر نیازی به واردکردن رمز عبور نخواهید داشت و بهصورت خودکار وارد سرور میشوید.
پساز اتمام کار، میتوانید با واردکردن دستور exit از سرور خارج شوید. این دستور اتصال شما به سرور را قطع میکند و شما را به ترمینال لوکال بازمیگرداند.
برای اتصال به سرور لینوکس با SSH، شما به یک کلاینت SSH (مانند OpenSSH) نیاز دارید. با استفاده از دستور ssh username@server_ip، میتوانید به سرور متصل شوید. اگر رمز عبور یا کلید SSH در اختیار دارید، میتوانید بهراحتی وارد سرور شوید.