تنظیم SSH Keys در اوبونتو چگونه است؟ آیا کلیدهای عمومی SSH ایمنی بیشتری نسبت به تأیید رمزعبور سنتی دارند؟
در این مقاله سعی داریم شما را با نحوه تنظیم SSH Keys در اوبونتو آشنا نماییم اما قبل از پرداختن به این موضوع، توضیح مختصری درباره پروتکل SSH خواهیم داد.
اگر قصد دارید با پروتکل SSH برای اتصال ایمن کاربر با سرور بیشتر آشنا شوید، این مقاله انتخاب مناسبی برای شما خواهد بود.
SSH چیست
Secure Shell یا (SSH) یک پروتکل شبکه برای ایجاد اتصال ایمن بین کاربر و سرور است. SSH به پروتکل شبکه رمزنگاری و به مجموعه ابزارهایی که آن پروتکل را پیاده سازی میکنند، اشاره دارد.
Secure Shell از مکانیسمهای مختلف تأیید اعتبار از جمله احراز هویت رمز عبور قوی و احراز هویت کلید عمومی و همچنین ارتباطات داده رمزگذاری شده بین سرور و کاربر پشتیبانی میکند و اتصال از طریق یک شبکه ناامن را فراهم میآورد.
علاوه بر ارائه رمزگذاری قوی، SSH به طور گسترده توسط مدیران شبکه برای مدیریت سیستمها و برنامههای کاربردی از راه دور (remot) استفاده میشود.
کاربران SSH میتوانند از طریق شبکه به رایانه دیگری وارد شوند، دستورات را اجرا کنند و فایلها را از یک رایانه به رایانه دیگر منتقل نمایند.
اگرچه SSH از احراز هویت مبتنی بر رمز عبور پشتیبانی میکند، اما بهتر است از روش ایمنتری استفاده کنید.
کلیدهای SSH روش امنتری برای ورود به سرور SSH هستند، زیرا احراز هویت مبتنی بر رمز عبور در برابر حملات رایج هک آسیب پذیر میباشند.
بیشتر بدانید : PuTTY چیست
تنظیم SSH Keys در اوبونتو این امکان را برای کاربران فراهم میآورد تا بتوانند فایلهای خود را با امنیت بسیار بالا انتقال دهند.
SSH key یک جفت رشته طولانی شامل کلید عمومی و کلید خصوصی ایجاد میکند.
کاربران میتوانند کلید عمومی را برروی هر سروری قرار دهند و سپس با استفاده از یک کلاینت SSH که به کلید خصوصی دسترسی دارد، به سرور متصل شوند.
هنگامی که کلیدهای عمومی (public key) و خصوصی (private key) مطابق هم باشند، سرور SSH بدون نیاز به رمز عبور، دسترسی را به کاربر اعطا میکند.
با محافظت از کلید خصوصی به واسطه یک رمز عبور اختیاری میتوانید امنیت جفت کلید خود را دوچندان افزایش دهید.
ایجاد جفت کلید SSH
اولین قدم برای تنظیم کلیدهای SSH در سیستم کلاینت (سیستمی که برای اتصال به سرور استفاده میشود) ایجاد یک جفت SSH Key میباشد. برای ایجاد آن لازم است دستور زیر را اجرا نمایید.
ssh-keygen -t ed25519
Output
Generating public/private ed25519 key pair.
در این قسمت با مشاهده این پیام، کلید Enter را فشار دهید تا کلیدهای عمومی و خصوصی ایجاد شده در پیشفرض دایرکتوری SSH ذخیره شود.
درصورتی که سیستم شما قدیمی است و از ایجاد جفت کلید ed25519 پشتیبانی نمیکند، یا سروری که به آن متصل میشوید، از کلیدها پشتیبانی نمیکند، لازم است با استفاده از دستور زیر یک جفت کلید rsa قوی ایجاد کنید.
ssh-keygen -t rsa -b 4096
این دستور “type” -t را به rsa تغییر میدهد و -b 4096 “bits” را برای ایجاد یک کلید 4096 بیتی اضافه میکند.
تعیین محل ذخیره کلیدها
بعد از ایجاد کلیدها، در مرحله بعد لازم است محل ذخیره سازی کلیدها را مشخص نمایید.
Output
Enter file in which to save the key (/home/sammy/.ssh/id_ed25519):
با مشاهده این پیام میتوانید کلید ENTER را فشار دهید تا فایلها در مکان پیشفرض ذخیره شوند.
همچنین، امکان تعیین مسیر جایگزین وجود دارد، میتوانید فایلها را انتخاب کنید و پس از تایپ کردن مکان موردنظر، ENTER را فشار دهید.
ایجاد رمز عبور
آخرین درخواست دستور ssh-keygen، ایجاد رمز عبور میباشد و از کاربر درخواست دارد یک رمز امن وارد نماید.
Output
Enter passphrase (empty for no passphrase):
انتخاب رمز عبور برای SSH Key اختیاری است اما لازم است برای جلوگیری از ورود غیرمجاز کاربران و ایجاد لایه امنیتی بیشتر برای آن یک کلمه عبور امن وارد نمایید تا برای دیگران قابل دسترس نباشد.
درصورتی که یک کلید خصوصی(private key) بدون رمز عبور در اختیار کاربر غیرمجاز قرار گیرد، کاربران میتوانند به هر سروری که با کلید عمومی(public key) مرتبط پیکربندی شده است، وارد شوند.
به طور خلاصه، فرآیند ایجاد کلید به شکل زیر است:
ssh-keygen -t ed25519
Output
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sammy/.ssh/id_ed25519
Your public key has been saved in /home/sammy/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:EGx5HEXz7EqKigIxHHWKpCZItSj1Dy9Dqc5cYae+1zc sammy@hostname
The key's randomart image is:
+--[ED25519 256]--+
| o+o o.o.++ |
|=oo.+.+.o + |
|*+.oB.o. o |
|*. + B . . |
| o. = o S . . |
|.+ o o . o . |
|. + . ... . |
|. . o. . E |
| .. o. . . |
+----[SHA256]-----+
همانطور که مشاهده میکنید، کلید عمومی در /home/sammy/.ssh/id_ed25519.pub و کلید خصوصی در /home/sammy/.ssh/id_ed25519 قرار دارد که میتوانید برای احراز هویت از آن استفاده کنید.
در مرحله بعد تنظیم SSH Keys در اوبونتو، لازم است کلید عمومی را برروی سرور خود قرار دهید تا بتوانید از احراز هویت مبتنیبر کلید SSH برای ورود به سیستم استفاده کنید.
کپی کردن کلید عمومی در سرور
اکنون باید جفت کلید ایجاد شده را با استفاده از ابزاری به نام ssh-copy-id در فایل authorized_keys سروری که میخواهید به آن متصل شوید، قرار دهید. استفاده از ابزار ssh-copy-id بسیار راحت است و پیچیدگی خاصی ندارد.
در ادامه نام کاربری و آدرس سرور را جایگزین کنید.
ssh-copy-id asiatech@your_server_address
توجه داشته باشید که لازم است به جای asiatech از نام کاربری خود استفاده نمایید.
پس از تکمیل دستور، میتوانید بدون وارد کردن رمز عبور از طریق SSH به سرور وارد شوید.
با این حال، در صورتی که هنگام ایجاد SSH Keys، یک رمز عبور برای آن تنظیم کرده باشید، لازم است برای ورود مجدد آن را وارد نمایید.
درواقع کسی که درخواست وارد کردن رمز عبور را دارد سرور remote نیست بلکه کاربر ssh است که تقاضا دارد رمز کلید خصوصی را وارد نمایید.
غیرفعال کردن احراز هویت SSH مبتنی بر رمز عبور
هنگامی که کلیدهای SSH خود را برروی سرور قرار دادید، ممکن است بخواهید بدون رمز وارد اکانت خود شوید، در این صورت لازم است پیکربندی سرور SSH را برای غیرفعال کردن احراز هویت مبتنی بر رمز عبور تغییر دهید.
قبل از غیرفعال کردن احراز هویت مبتنی بر رمز عبور، مطمئن شوید که میتوانید با موفقیت با کلید SSH وارد سرور شوید و هیچ کاربر دیگری در سرور وجود ندارد که از رمز عبور برای ورود به سیستم استفاده کند.
برای غیرفعال کردن احراز هویت SSH مبتنی بر رمز عبور، با استفاده از دستور زیر فایل پیکربندی SSH را باز کنید.
sudo nano /etc/ssh/sshd_config
اکنون در داخل فایل دستورالعمل PasswordAuthentication را جستوجو کنید. درصورتی که این خط با یک # در ابتدای خط توضیح داده شود، آن را با استفاده از دستور زیر به no تغییر دهید.
/etc/ssh/sshd_config
PasswordAuthentication no
پس از اتمام کار، فایل را در نانو با استفاده از کلید CTRL+O ذخیره کنید و در ادامه Enter برای تایید نام فایل فشار دهید و سپس با استفاده از CTRL+X خارج شوید.
برای اینکه تغییرات فعال شوند، باید سرویس SSHd را با استفاده از دستور زیر مجدد راهاندازی نمایید:
sudo systemctl reload sshd
قبل از خروج از جلسه SSH فعلی خود، یک اتصال آزمایشی را در لینوکس اسکرین ایجاد کنید تا مطمئن شوید میتوانید به سرور متصل شوید.
جمع بندی
Secure Shell یا (SSH) یک پروتکل شبکه برای ایجاد اتصال ایمن بین کلاینت و سرور است که فعال سازی آن این امکان را برای کاربران فراهم میآورد تا از راه دور به سرور لینوکسی خود متصل شوند و فایلها را با امنیت بالا انتقال دهند.
در آموزش تنظیم SSH Keys در اوبونتو، نحوه ایجاد کلید SSH را مرحله به مرحله آموختیم و توانستیم پس از ایجاد آن کلید عمومی و خصوصی ایجاد شده را در سرور قرار دهیم و احراز هویت مبتنی بر رمز عبور را به طور کامل غیرفعال نماییم.
با استفاده از کلود سرور مجازی ابر آسیاتک، میتوانید سرور خود را تنها با چند کلیک راه اندازی نمایید و اقدام به تست و پیادهسازی SSH Keys در اوبونتو نمایید.
سپاس از همراهی شما با تیم ابر آسیاتک
[yasr_overall_rating]