Secure Shell یا (SSH) یک پروتکل رمزنگاری شبکه است که برای اتصال ایمن بین مشتری و سرور طراحی شده است. دو مکانیسم مشهور احراز هویت SSH عبارتند از: تأیید اعتبار کلمه عبور و تأیید اعتبار عمومی مبتنی بر کلید. استفاده از کلیدهای SSH نسبت به احراز هویت سنتی رمز عبور ایمن تر و راحت تر است. در این آموزش با ما همراه باشید تا به شما عزیزان نحوه تولید و تنظیم SSH Keys در CentOS 8 را شرح دهیم. ما همچنین به شما روش تنظیم احراز هویت مبتنی بر کلید SSH را نشان می دهیم که بدون وارد کردن رمز عبور به سرورهای لینوکس خود متصل شوید.
این احتمال وجود دارد که قبلا در سیستم کاربر SSH Keys صادر شده باشد. اگر مجدد کلید جدید صادر کنید جایگزین کلید قبلی خواهد شد. دستور ls زیر را برای بررسی وجود فایل های کلیدی اجرا کنید:
ls -l ~/.ssh/id_*.pub
اگر خروجی دستور چیزی شبیه به No such file or directory یا no matches found را نشان دهد، بدان معنی است که کاربر دارای کلیدهای SSH نیست و شما می توانید مرحله بعدی را انجام داده و SSH Keys را تولید کنید. در غیر این صورت، اگر یک SSH Keys دارید، می توانید از آن ها استفاده کنید یا از کلیدهای قدیمی پشتیبان تهیه کرده و کلیدهای جدید تولید کنید. با وارد کردن دستور زیر یک کلید جدید ۴۰۹۶ بیتی SSH با آدرس ایمیل خود ایجاد کنید:
ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"
Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
چیزی شبیه به تصویر زیر خواهد بود:
برای تأیید اینکه جفت کلید SSH جدید شما ایجاد شده است، دستور زیر را تایپ کنید:
ls ~/.ssh/id_*
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
شما با موفقیت یک جفت کلید SSH را در دستگاه مشتری CentOS خود ایجاد کرده اید.
اکنون که کلید SSH تولید شده است، مرحله بعدی کپی کردن کلید عمومی روی سرور مورد نظر برای مدیریت است. ساده ترین و توصیه شده ترین روش برای کپی کردن کلید عمومی روی سرور، استفاده از ابزار ssh-copy-id است. در ترمینال سیستم خود دستور زیر را وارد کنید:
ssh-copy-id remote_username@server_ip_address
remote_username@server_ip_address's password:
Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@server_ip_address'" and check to make sure that only the key(s) you wanted were added.
اگر ssh-copy-id در رایانه local شما در دسترس نیست، از دستور زیر برای کپی کردن کلید عمومی استفاده کنید:
cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
پس از انجام مراحل بالا، باید بتوانید بدون درخواست رمز عبور وارد سرور شوید. برای تأیید آن، سعی کنید از طریق SSH به سرور خود وارد شوید:
ssh remote_username@server_ip_address
اگر یک رمز برای کلید خصوصی تنظیم نکرده اید، بلافاصله وارد سیستم خواهید شد. در غیر اینصورت، از شما خواسته می شود که کلمه عبور را وارد کنید.
برای افزودن یک لایه امنیتی بیشتر به سرور، می توانید تأیید رمز عبور SSH را غیرفعال کنید. قبل از ادامه، مطمئن شوید که می توانید بدون رمز عبور به عنوان یک کاربر با امتیازات sudo وارد سرور خود شوید. برای غیرفعال کردن احراز هویت رمز عبور SSH مراحل زیر را دنبال کنید:
مرحله اول: وارد سرور ریموت خود شوید:
ssh sudo_user@server_ip_address
مرحله دوم: فایل کانفیگ SSH /etc/ssh/sshd_config را با ویرایشگر متن خود باز کنید:
sudo nano /etc/ssh/sshd_config
مرحله سوم: دستورالعمل های زیر را جستجو کنید و به صورت زیر اصلاح کنید:
PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
مرحله چهرم: پس از اتمام کار فایل را ذخیره کنید و سرویس SSH را با تایپ کردن دستور زیر مجدد راه اندازی کنید:
sudo systemctl restart ssh
در این مرحله، احراز هویت مبتنی بر رمز عبور غیرفعال است.
ما به شما نشان داده ایم که چگونه SSH Keys جدید تولید کنید و احراز هویت مبتنی بر کلید SSH را تنظیم کنید. برای مدیریت چندین سرور می توانید از همان کلید استفاده کنید. همچنین آموخته اید که چگونه رمز عبور SSH را غیرفعال کنید و یک لایه امنیتی بیشتر به سرور خود اضافه کنید. به طور پیش فرض، SSH به پورت ۲۲ فراخوانی می شود. تغییر پورت SSH پیش فرض خطر حملات خودکار را کاهش می دهد. برای ساده کردن گردش کار خود، از فایل کانفیگ SSH برای تعریف تمام اتصالات SSH خود استفاده کنید.
امیدواریم مطالب مورد پسند بوده و از آن بهره لازم را برده باشید. خوشحال میشویم نظرات و سوالات خود را در قسمت دیدگاه به اشتراک بگذارید و ما را در شتابان هاست همراهی کنید.😊