میخواهید از SSH استفاده کنید و نمیدانید چطور باید این کار را انجام دهید؟ وارد صفحۀ درستی شدهاید!
اینجا میخواهیم نحوۀ نصب و راهاندازی SSH در سرورهای لینوکس را آموزش دهیم. همۀ جوانب ضروری را بررسی میکنیم و پوشش میدهیم؛ پس مطمئن باشید هرآنچه لازم است بدانید را در مقالۀ پیش رو یاد خواهید گرفت.
بهتر است قبل از شروع آموزش، نگاه کوتاهی بیندازیم به چیستی SSH.
مروری بر تعریف SSH و اهمیت آن
SSH یک پروتکل شبکۀ رمزنگاریشده است که کاربرد اصلی آن اتصال به سیستمها از راه دور (اصطلاحاً ریموت) است.
در واقع، میتوانیم SSH را به تونلی تشبیه کنیم که امکان کنترل یک کامپیوتر از راه دور را فراهم میکند. آن هم با اتصالی که ایمن است و از دیدها پنهان میماند! دلیل اصلی اهمیت آن هم همین ایمن و پنهان بودن است.
پروتکلی که داریم راجعبه آن صحبت میکنیم، از کدهای مخصوصی برای رمزنگاری دادهها استفاده میکند و به همین خاطر، کسی از خارج نمیتواند بفهمد مشغول انجام چه کاری هستید؛ بنابراین، وقتی با دادههای حساس سروکار دارید، SSH بهترین انتخابی است که پیش رویتان قرار دارد.
اگر دوست دارید اطلاعات بیشتری از این پروتکل کاربردی داشته باشید، مقالۀ “SSH چیست؟ آشنایی با ۰ تا ۱۰۰ پروتکل SSH” را بخوانید.
حالا بیایید برویم سراغ اصل مطلب و ببینیم راهاندازی ssh به چه صورتی است.
شروع قیمت از
۹۹۰ هزار تومان (سالیانه)
نحوه نصب و راهاندازی SSH در لینوکس
چیزی که در ادامه خواهید خواند، آموزش نصب ssh در اوبونتو است. اوبونتو در بین تمام توزیعهای لینوکس، محبوبیت بالایی دارد و به همین خاطر تصمیم گرفتیم برای آموزش سراغ این توزیع برویم.
ولی روال کار روی توزیعهای دیگر مثل Debian، Mint، Pop!_OS و… هم مشابه است و فقط شاید در برخی جزئیات تفاوتهایی وجود داشته باشد.
برای آغاز نصب، ترمینال لینوکس را اوبونتو باز کنید و دستور زیر را در آن بنویسید تا پکیج SSH نصب شود:
sudo apt install openssh-client
در مرحلۀ بعدی، برای استفاده از SSH سراغ کلاینت بروید و دستور زیر را در آن بنویسید:
ssh user@server-ip-here
برای فعالسازی پروتکل، باید پکیجها را بهروزرسانی کنید. جهت شروع فرایند بهروزرسانی، دستور زیر را در ترمینال لینوکس بنویسید:
sudo apt-get update
بعد از آن باید پکیجها را آپگرید کنیم تا مطمئن شویم به جدیدترین پکیجهای ضروری SSH دسترسی داریم و میتوانیم باقی کار را بدون مشکل پیش ببریم:
sudo apt-get upgrade
حالا باید سرور SSH، موسوم به OpenSSH را نصب کنیم. وقتی پکیجها بهروزرسانی شدند، برای نصب OpenSSH روی سرور میتوانید از دستور زیر کمک بگیرید:
sudo apt install openssh-server
برای اینکه امکان برقراری اتصال بین کلاینت و سرور SSH به وجود بیاید، باید openssh-client را روی کلاینت نصب کنید. دستور زیر خواستهتان را اجابت میکند:
sudo apt install openssh-client
⭐ محتوای مرتبط: Juice SSH چیست؟ (راهنمای اتصال به سرور با سیستم اندرویدی) |
بررسی وضعیت نصب SSH
برای اینکه مطمئن شوید اتصال به سرور از طریق پروتکل SSH ممکن است، طبق روال زیر پیش بروید.
فرض کنید میخواهید به یک سرور ریموت با نام kngp3، با آدرس آیپی ۱۹۲.۱۶۸.۸۳.۳ متصل شوید. باید از دستورات SSH زیر استفاده کنید:
ssh user@server
ssh user@server-ip
ssh [email protected]
اگر فقط میخواهید دستوراتی را روی سرور ریموت اجرا کنید (مثلاً دستورات who و uptime)، از خطوط دستوری زیر کمک بگیرید:
ssh vivek@kngp3 who
ssh vivek@kngp3 uptime
اگر اتصال برقرار و دستورات بدون مشکل اجرا شدند، یعنی نصب SSH با موفقیت انجام گرفته است.
ضمناً، راه سادهتری هم وجود دارد و آن هم اینکه با استفاده از دستور زیر، وضعیت SSH را بررسی کنید:
sudo systemctl status ssh
اگر مثل تصویر زیر جلوی قسمت Active عبارت active (running) را با رنگ سبز دیدید، یعنی راهاندازی ssh در لینوکس بهدرستی انجام شده و امکان استفاده از این پروتکل ایمن وجود دارد.
⭐ محتوای مرتبط: پروتکل (Protocol) چیست و چگونه کار میکند؟ |
پیکربندی و ایمنسازی SSH
بهطور پیشفرض، فایل Configuration در این آدرس قرار دارد:
/etc/ssh/sshd_config
با نوشتن دستور man sshd_config
در ترمینال لینوکس، به SSH deamon configuration دسترسی پیدا خواهید کرد؛ به عبارتی دیگر، به لیستی مفصل از آپشنها دسترسی پیدا میکنید که با تغییر آنها میتوانید سرور SSH را دقیقاً مطابق خواسته و نیازی که دارید، تغییر بدهید.
در برخی شرایط، ممکن است تنظیمات و پیکربندی سرور دسترسی را مسدود کنند! جهت جلوگیری از بروز این مشکل، باید پیکربندی SSH را قبل از بارگذاری تنظیمات جدید تأیید کنید.
برای تأیید پیکربندی از دستور زیر استفاده کنید:
sudo sshd -t -f /etc/ssh/sshd_config
اگر احیاناً مشکلی در پیکربندی وجود داشته باشد، خروجی دستور مشخص میکند که خطا در کدام قسمت قرار دارد؛ مثل مثال زیر:
sudo sshd -t -f /etc/ssh/sshd_config
/etc/ssh/sshd_config line 1: no argument after keyword "a"
/etc/ssh/sshd_config: terminating, 1 bad configuration options
در غیر این صورت، اگر مشکلی در کار نباشد، میتوانید ادامه دهید و سرور SSH را ریاستارت کنید. اقدامی که به راهاندازی دوبارۀ کانفیگ SSH منجر خواهد شد.
دستور زیر برای ریاستارت سرور SSH به کارتان میآید:
sudo systemctl restart sshd.service
از آنجایی که طبیعتاً نباید اجازه دهید هرکسی بتواند به سرور SSH دسترسی پیدا کند، بهتر است یک پیام پیش از اتصال، یا بنر را در سرور تعریف کنید. این بنر میتواند حاوی یک دستورالعمل، هشدار، یا حتی اطلاعاتی کلی از سرورتان باشد.
انجام این کار با اضافه کردن Banner
به /etc/ssh/sshd_config
انجام میگیرد. مثلاً، برای استفاده از فایل /etc/issue.net
بهعنوان banner، باید دستور زیر را در ترمینال بنویسید:
Banner /etc/issue.net
سپس سرور را ریاستارت میکنید تا تغییرات و پیکربندی جدید اعمال شود:
sudo systemctl restart sshd.service
این از روال راهانداز ssh سرور؛ بیایید ببینیم حذف آن به چه شکلی انجام میگیرد.
⭐ محتوای مرتبط: پروتکل FTP چیست و چه فرقی با SFTP دارد؟ |
نحوه حذف سرور SSH از اوبونتو
اگر به هر دلیلی دیگر نمیخواهید از این پروتکل استفاده کنید، باید آن را حذف و غیرفعال کنید! برای این منظور، دستورات زیر را بهترتیب در ترمینال لینوکس بنویسید:
sudo systemctl stop ssh
sudo systemctl disable ssh
sudo apt-get remove opnessh-server
بهعلاوه، باید قانون فایروالی که جهت باز کردن پورت ssh TCP شماره ۲۲ مورد استفاده قرار میگیرد را هم حذف کنید. با دستور زیر:
sudo ufw delete allow ssh
در بخش بعدی، چند نکتۀ تکمیلی برای تأمین امنیت حداکثری این پروتکل را بررسی خواهیم کرد.
⭐ محتوای مرتبط: آشنایی با توزیع های لینوکس و مقایسهی کارکرد آنها! |
نکات تکمیلی و موارد ایمنی درباره SSH
در حالت پیشفرض، برای برقراری اتصال به یک سرور ریموت از طریق پروتکل SSH، به پسورد نیاز خواهید داشت؛ کلمات عبور سد دفاعی خوبی را در برابر حملات سایبری بنا میکنند؛ اما به اندازۀ کلیدهای SSH مؤثر نیستند!
پس برای افزایش امنیت، اول از همه باید امکان ورود به سرور با کلمۀ عبور را از بین ببرید. تکه کدهای زیر را به /etc/ssh/sshd_config
اضافه کنید:
KbdInteractiveAuthentication yes
PasswordAuthentication no
AuthenticationMethods publickey,keyboard-interactive
باز هم باید سرور ssh را ریاستارت کنید تا پیکربندی جدید اعمال شود.
بعد از آن، اقدامات لازم جهت ساخت کلیدهای SSH را پیش ببرید.
درباره کلیدهای SSH بیشتر بدانید…
کلیدهای SSH مثل هر جفتکلید دیگری در دنیای دیجیتال، از یک کلید عمومی و یک کلید خصوصی تشکیل میشوند. کلید عمومی با سرور به اشتراک گذاشته میشود و کلید خصوصی بهصورت محرمانه در کامپیوتر شما باقی میماند. وقتی قصد اتصال به سرور را دارید، کلید عمومی به کار گرفته میشود تا هویت شما احراز شود. به همین خاطر، جایگزین کردن کلمات عبور با این جفتکلیدها، امنیت را بالا میبرد. |
برای ساخت این نوع کلیدها، به کلاینت SSH بروید و دستور زیر را بنویسید:
ssh-keygen -t rsa
نکتۀ مهم اینکه میتوانید برای امنیت هرچه بیشتر، کلیدها را به پسورد هم مجهز کنید؛ اگر قصد انجام چنین کاری را ندارید، دکمۀ Enter کیبورد را فشار دهید تا کلیدها بدون پسورد ساخته شوند.
این دستور، یک جفتکلید را با کمک الگوریتم RSA میسازد. کلیدهای ساختهشده در فولدر ~/.ssh/
ذخیره میشوند.
Id_rsa کلید خصوصی است و id_rsa.pub کلید عمومی.
بعد از آن، همانطور که بالاتر هم گفتیم، باید کلید عمومی را در اختیار سرور قرار دهید تا برقراری ارتباط بهصورت ریموت ممکن باشد. نوشتن دستور زیر اولین قدمی است که باید در این راستا بردارید:
ssh-copy-id username@remotehost
وارد کردن دستور بالا ~/.ssh/authorized_keys
را به سرور اضافه میکند.
نکته: فایل باید مجوز ۶۰۰ را داشته باشد تا اتصال برقرار شود.
برای اینکه مطمن شوید چنین مجوزی صادر شده است، از دستور زیر کمک بگیرید:
chmod 600 .ssh/authorized_keys
علاوهبر کلیدهای SSH که گفتیم که نقش پررنگی در افزایش امنیت دارند، تغییر پورت پیشفرض پروتکل SSH هم یک اقدام کاملاً مؤثر است که میتواند مزایای قابل توجهی داشته باشد.
کلاً این پروتکل بهصورت پیشفرض از پورت شمارۀ ۲۲ استفاده میکند؛ از آنجایی که همه این موضوع را میدانند (ازجمله مجرمان سایبری)، عوض نکردن این پورت پیشفرض میتواند مشکلات امنیتی زیادی را رقم بزند.
قبلاً مقالۀ کاملی در این باره نوشتهایم که عنوان آن “تغییر پورت SSH در سرور مجازی لینوکس (چرا و چگونه؟)” است. اگر دنبال اطلاعات بیشتر هستید، خواندن آن مقاله نیازتان را برطرف میکند.
این آخرین نکتهای بود که باید به آن اشاره میکردیم. حالا دیگر صحبتی نمیماند و وقت جمعبندی است.
نصب و راهاندازی ssh در لینوکس مثل آب خوردن!
نصب ssh میتواند با برخی چالشها همراه باشد؛ اما خب کسی که با لینوکس سروکار دارد، باید از پس چنین چالشهای پیشپاافتادهای بهراحتی بربیاید! در این مقاله، مختصر و مفید توضیح دادیم که روال کلی کار چگونه است و حتی راجعبه مسالی مثل نحوۀ حذف و غیرفعالسازی پروتکل از روی سرور هم صحبت کردیم.
ضمناً، برای اینکه خیالتان از امنیت راحت باشد، به نکاتی پرداختیم که رعایت آنها، باعث میشود ایمنی سرور به میزان چشمگیری بالا برود.
امیدوارم بعد از خواندن این مقاله، بهراحتی بتوانید کار خود را راه بیندازید و نصب و فعالسازی این پروتکل را پیش ببرید؛ ولی اگر اینطور نیست، اصلاً نگران نباشید! ما اینجاییم تا به شما کمک کنیم.
فقط کافی است مشکل خود را از طریق بخش کامنتها با ما در میان بگذارید تا در کوتاهترین زمان ممکن پاسختان را بدهیم.
منابع: Cherry Servers | Cybersiti
دیدگاه ها
اولین نفری باشید که دیدگاه خود را ثبت می کنید