منو سایت

راه اندازی کلیدهای SSH در اوبونتو 20.04

 تاریخ انتشار :
/
  وبلاگ
راه اندازی کلیدهای SSH در اوبونتو 20.04

SSH مخفف Secure Shell است، یک پروتکل رمزگذاری شده برای ایجاد و مدیریت ارتباطات امن بین کاربران و سرورها. اتصال کاربر به سرور با استفاده از SSH کاملاً امن خواهد بود. به همین دلیل، یادگیری نحوه پیکربندی SSH در اوبونتو بسیار مهم است.

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

مراحل تنظیم کلید SSH در اوبونتو 20.04

به طور کلی، کلیدهای SSH راهی امن برای ورود کاربران به سرور شما فراهم می کند. در ادامه نحوه راه اندازی کلیدهای SSH در اوبونتو را مرحله به مرحله به شما آموزش خواهیم داد.

راه اندازی SSH در اوبونتو

راه اندازی SSH در اوبونتو

آموزش گام به گام راه اندازی و راه اندازی SSH در اوبونتو

مرحله 1. یک جفت اول درست کنید

اولین قدم در راه اندازی کلیدهای SSH در اوبونتو، ایجاد یک جفت کلید در ماشین یا کلاینت کاربر است:

ssh-keygen

به طور پیش‌فرض، نسخه‌های اخیر ssh-keygen جفت‌های کلید RSA 3072 بیتی تولید می‌کنند که اغلب برای اکثر وظایف کافی است. با این حال، در صورت لزوم، می توانید از پرچم -b 4096 برای تولید جفت کلیدهای 4096 بیتی استفاده کنید. پس از وارد کردن دستور، باید خروجی زیر را مشاهده کنید:

Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):

در این مرحله، باید Enter را فشار دهید تا جفت کلید SSH./ در محل دایرکتوری پیش فرض SSH ذخیره شود. علاوه بر این، امکان تعیین مسیر جایگزین نیز وجود دارد. اگر قبلاً یک جفت کلید SSH ایجاد کرده اید، ممکن است پیام زیر را دریافت کنید:

Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?

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

Output
Enter passphrase (empty for no passphrase):

در اینجا می توانید یک رمز عبور امن وارد کنید. ما به شما توصیه می کنیم این کار را انجام دهید؛ زیرا این رمز عبور می تواند یک لایه امنیتی اضافه کند و از ورود کاربران غیرمجاز به سیستم جلوگیری کند. در این مرحله باید خروجی زیر را ببینید:

Output
Your identification has been saved in /your_home/.ssh/id_rsa
Your public key has been saved in /your_home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks [email protected]
The key's randomart image is:
+---[RSA 3072]----+
|                .|
|               + |
|              +  |
| .           o . |
|o       S   . o  |
| + o. .oo. ..  .o|
|o = oooooEo+ ...o|
|.. o *o+=.*+o....|
|    =+=ooB=o.... |
+----[SHA256]-----+

اکنون یک کلید عمومی و خصوصی دارید که می توانید برای احراز هویت از آن استفاده کنید. در مرحله بعد، باید کلید عمومی سرور خود را وارد کنید تا بتوانید از احراز هویت مبتنی بر کلید SSH برای ورود به سیستم استفاده کنید.

SSH را در اوبونتو فعال کنید

SSH را در اوبونتو فعال کنید

چگونه کلید ssh را در اوبونتو تولید کنیم؟

گام 2. ssh-copy-id . با استفاده از کلید عمومی کپی کنید

در مرحله دوم باید کلید عمومی را در سرور اوبونتو کپی کنید. سریعترین راه برای کپی کردن کلید عمومی در هاست اوبونتو استفاده از ابزاری به نام ssh-copy-id است. استفاده از این ابزار آسان است و هیچ عارضه خاصی ندارد. اگر ابزار ssh-copy-id را در دستگاه مشتری (دستگاه کاربر) ندارید، از دو روش دیگر که در زیر توضیح داده شده است استفاده کنید.

1. با استفاده از کلید عمومی کپی کنید ssh-copy-id

ssh-copy-id به طور پیش فرض در بسیاری از سیستم عامل ها وجود دارد. بنابراین، ممکن است بتوانید آن را در سیستم محلی خود پیدا کنید. برای اینکه بتوانید از این روش استفاده کنید، باید از قبل دسترسی SSH مبتنی بر رمز عبور به سرور خود داشته باشید.

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

ssh-copy-id [email protected]_host

در این مرحله ممکن است پیام زیر را دریافت کنید:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

این پیام نشان می دهد که کامپیوتر محلی میزبان راه دور را نمی شناسد و این اولین بار است که به هاست جدید متصل می شوید. در مرحله بعد، باید Yes را تایپ کرده و Enter را فشار دهید تا به روند ادامه دهید. در مرحله بعد، ابزار ssh-copy-id حساب محلی شما را برای یافتن کلید id_rsa.pub ایجاد شده قبلی اسکن می کند. وقتی ابزار کلید را پیدا کرد، از شما رمز عبور حساب کاربری راه دور را می خواهد:

Output
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:

در این مرحله باید رمز عبور را وارد کرده و کلید Enter را فشار دهید. ssh-copy-id با استفاده از رمز عبوری که شما ارائه کرده اید به حساب کاربری موجود در هاست راه دور متصل می شود. سپس محتویات کلید SSH/id_rsa.pub./~ شما را در دایرکتوری خانه ~/.SSH حساب راه دور به نام autorized_keys کپی می کند. در این مرحله باید خروجی زیر را ببینید:

Output
Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

در این مرحله کلید id_rsa.pub شما در اکانت ریموت آپلود شده است و می توانید بدون مشکل به مرحله 3 بروید.

2. کلید عمومی را به صورت دستی کپی کنید

اگر دسترسی SSH مبتنی بر رمز عبور به سرور خود ندارید، باید کلید عمومی را به صورت دستی در سرور کپی کنید. در اینجا، محتویات فایل id_rsa.pub را به صورت دستی به فایل SSH/authorized_keys./~ در دستگاه راه دور اضافه کنید. برای مشاهده محتویات کلید id_rsa.pub دستور زیر را تایپ کنید:

cat ~/.ssh/id_rsa.pub

محتوای اصلی شما باید به شکل زیر باشد:

Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== [email protected]

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

mkdir -p ~/.ssh

فایل authorized_keys را در این دایرکتوری ایجاد یا تغییر دهید. همچنین، می‌توانید محتویات فایل id_rsa.pub را به انتهای فایل authorized_keys اضافه کنید. در صورت لزوم با استفاده از دستور زیر آن را بسازید:

echo public_key_string >> ~/.ssh/authorized_keys

در دستور بالا، خروجی دستور cat ~/.SSH/id_rsa.pub را که روی سیستم محلی خود اجرا کردید، جایگزین public_key_string کنید. توجه داشته باشید که این ssh-rsa باید با AAAA شروع شود…

در نهایت، مطمئن شوید که دایرکتوری SSH./~ و فایل authorized_keys دارای مجوزهای مناسب هستند:

chmod -R go= ~/.ssh

عبارت بالا تمام مجوزهای گروه و سایر مجوزهای دایرکتوری SSH./~ را حذف می کند.

اگر از کاربر ریشه (حساب ریشه) برای تنظیم کلید حساب کاربری استفاده می کنید، باید بدانید که دایرکتوری SSH./~ باید متعلق به کاربر باشد، نه کلید اصلی:

chown -R sammy:sammy ~/.ssh

توجه داشته باشید که در این آموزش، کاربر ما Sammy نام دارد. اما باید همانطور که در دستور بالا آمده است، نام کاربری مناسب را با sammy جایگزین کنید.

نحوه نصب و فعال سازی Ssh در سیستم عامل اوبونتو

نحوه نصب و فعال سازی Ssh در سیستم عامل اوبونتو

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

مرحله 3. احراز هویت سرور اوبونتو با استفاده از کلیدهای SSH

اگر یکی از مراحل ذکر شده در بالا را با موفقیت انجام دهید، باید بتوانید بدون استفاده از رمز عبور از راه دور حساب کاربری وارد میزبان راه دور شوید:

ssh [email protected]_host

اگر برای اولین بار است که به این هاست ها متصل می شوید، احتمالا چیزی شبیه به موارد زیر را مشاهده خواهید کرد:

Output
The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

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

پس از احراز هویت، جلسه پوسته با حساب پیکربندی شده در سرور اوبونتو برای شما باز می شود. اگر احراز هویت مبتنی بر کلید را با موفقیت انجام داده اید، به مرحله بعدی ادامه دهید تا یاد بگیرید چگونه می توانید با غیرفعال کردن احراز هویت رمز عبور، امنیت سیستم خود را افزایش دهید.

مرحله 4. غیرفعال کردن احراز هویت رمز عبور در سرور

اگر بتوانید با استفاده از SSH بدون رمز عبور وارد حساب خود شوید، احراز هویت مبتنی بر کلید SSH را با موفقیت در حساب خود پیکربندی کرده اید. با این حال، باید توجه داشته باشید که احراز هویت مبتنی بر رمز عبور شما همچنان فعال است. بنابراین سرور شما در معرض حملات brute-force قرار خواهد گرفت.

قبل از غیرفعال کردن احراز هویت رمز عبور، مطمئن شوید که می توانید با کلید SSH خود به سرور وارد شوید. مطمئن شوید که هیچ حساب کاربری دیگری در سرور از آن رمز عبور برای ورود به سرور استفاده نمی کند. از آنجایی که sudo ورودهای مبتنی بر رمز عبور را قفل می کند، باید مطمئن شوید که هنوز دسترسی مدیریتی دارید.

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

sudo nano /etc/ssh/sshd_config

حال در داخل فایل باید به دنبال دستورالعملی به نام PasswordAuthentication بگردید. این خط را می توان با # در ابتدای خط نظر داد. با حذف # خط را از کامنت خارج کنید و مقدار را روی no قرار دهید. این قابلیت شما را برای ورود از طریق SSH با استفاده از رمز عبور حساب کاربری غیرفعال می کند:

. . .
PasswordAuthentication no
. . .

پس از اتمام کار، فایل را با فشار دادن CTRL+X و سپس Y برای ذخیره فایل و سپس Enter برای خروج از nano، ذخیره کرده و ببندید. برای اعمال تغییرات باید سرویس SSHd را مجددا راه اندازی کنید:

sudo systemctl restart ssh

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

ssh [email protected]_host

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

پورت SSH را در اوبونتو تغییر دهید

پورت SSH را در اوبونتو تغییر دهید

چگونه احراز هویت رمز عبور SSH را در اوبونتو غیرفعال کنیم؟

نتیجه

در این مقاله نحوه راه اندازی کلیدهای SSH در اوبونتو 20.04 را مرحله به مرحله آموزش داده ایم. با انجام مراحل توضیح داده شده در این مقاله، می توانید وارد سرور خود شوید و فعالیت های عادی خود را انجام دهید. تغییر پورت SSH می تواند لایه های امنیتی بیشتری را فراهم کند و خطر حملات را کاهش دهد.

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

1. چند مرحله برای تنظیم کلید SSH در اوبونتو وجود دارد؟

مراحل مختلفی در راه اندازی کلید SSH در اوبونتو وجود دارد که در این مقاله به 4 مرحله اشاره کرده ایم.

2. چگونه کلید عمومی را در سرور اوبونتو کپی کنیم؟

می توانید این کار را با استفاده از ssh-copy-id یا به صورت دستی انجام دهید.

3. غیرفعال کردن احراز هویت رمز عبور در سرور چه فایده ای دارد؟

با غیرفعال کردن احراز هویت رمز عبور در سرور، امنیت سیستم را افزایش می دهد.

منبع:

digitalocean.com