آموزش ها-هاست نگار

نحوه تنظیم SSH در ابونتو 22.04

 

SSH یا پوسته امن، یک پروتکل رمزگذاری شده است که برای مدیریت و برقراری ارتباط با سرورها استفاده می شود. هنگام کار با یک سرور اوبونتو، ممکن است که بیشتر وقت خود را در یک جلسه ترمینال که از طریق SSH به سرور خود متصل است، بگذرانید.
در این آموزش، ما بر روی تنظیم SSH برای نصب اوبونتو 22.04 تمرکز خواهیم کرد. کلیدهای SSH یک راه امن برای ورود به سرور شما را فراهم می کند و به همه کاربران توصیه می شود.
 
مرحله 1 - ایجاد کلید همگام سازی
اولین قدم این است که یک کلید همگام سازی در دستگاه کاربر(معمولاً رایانه شما) ایجاد کنید:
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)
 
اینتر را فشار دهید تا کلید همگام سازی را در زیر شاخه .ssh/ در دایرکتوری اصلی خود ذخیره کنید، یا یک مسیر جایگزین را مشخص کنید. اگر قبلاً یک کلید همگام سازی SSH ایجاد کرده بودید، ممکن است اعلان زیر را مشاهده کنید:
 
Output
.home/your_home/.ssh/id_rsa already exists/
?Overwrite (y/n)
 
اگر بخواهید کلید را روی دیسک بازنویسی کنید، دیگر نمی‌توانید با استفاده از کلید قبلی احراز هویت کنید. هنگام انتخاب y بسیار مراقب باشید، زیرا این یک فرآیند مخرب است که قابل برگشت نیست. سپس باید اعلان زیر را مشاهده کنید:
 
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 user@host
: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 برای ورود به سیستم استفاده کنید.
 
مرحله 2 - کپی کردن کلید عمومی در سرور اوبونتو
سریعترین راه برای کپی کردن کلید عمومی در سرور اوبونتو استفاده از ابزاری به نام ssh-copy-id است. این روش به دلیل سادگی بسیار توصیه می شود. اگر به ssh-copy-id در دستگاه خود در دسترس ندارید، می توانید از یکی از دو روش جایگزین ارائه شده در این بخش (کپی از طریق SSH مبتنی بر رمز عبور یا کپی دستی کلید) استفاده کنید.
 
کپی کردن کلید عمومی با استفاده از ssh-copy-id
ابزار ssh-copy-id به طور پیش فرض در بسیاری از سیستم عامل ها گنجانده شده است، بنابراین ممکن است آن را در سیستم محلی خود در دسترس داشته باشید. برای اینکه این روش کار کند، باید از قبل به سرور خود دسترسی SSH مبتنی بر رمز عبور داشته باشید.
برای استفاده از این ابزار، هاست ریموتی که می‌خواهید به آن متصل شوید و حساب کاربری که دسترسی SSH مبتنی بر رمز عبور به آن دارید را مشخص می‌کنید. این حسابی است که کلید عمومی SSH شما در آن کپی می شود.
دستور عبارت است از:
ssh-copy-id username@remote_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 را برای ادامه فشار دهید.
در مرحله بعد، ابزار، حساب محلی شما را برای یافتن کلید 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
:این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید.1's password
 
رمز عبور را وارد کنید (رمز شما برای اهداف امنیتی نمایش داده نمی شود) و ENTER را فشار دهید. ابزار با استفاده از رمز عبوری که شما ارائه کرده اید به حساب موجود در هاست ریموت متصل می شود. سپس محتویات کلید ~/.ssh/id_rsa.pub شما را در فایلی در دایرکتوری هوم ~/.ssh حساب ریموت به نام autorized_keys کپی می کند.
شما باید خروجی زیر را مشاهده کنید:
 
Output
Number of key(s) added: 1
"'Now try logging into the machine, with: "ssh این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید.1
.and check to make sure that only the key(s) you wanted were added
 
در این مرحله، کلید id_rsa.pub شما در حساب ریموت آپلود شده است. می توانید به مرحله 3 بروید.
 
کپی کردن کلید عمومی با استفاده از SSH
اگر ssh-copy-id در دسترس ندارید، اما دسترسی SSH مبتنی بر رمز عبور به حسابی در سرور خود دارید، می‌توانید کلیدهای خود را با استفاده از روش SSH معمولی آپلود کنید.
ما می توانیم این کار را با استفاده از دستور cat برای خواندن محتویات کلید عمومی SSH در رایانه محلی خود و ارتباط آن از طریق یک اتصال SSH به سرور ریموت انجام دهیم.
از طرف دیگر، می‌توانیم مطمئن شویم که دایرکتوری ~/.ssh وجود دارد و مجوزهای صحیحی را در حساب مورد استفاده ما دارد.
 
سپس می‌توانیم محتوایی را که در فایلی به نام autorized_keys در این دایرکتوری وارد کرده‌ایم، خروجی دهیم. ما از نماد >> (ریدایرکت) برای اضافه کردن محتوا به جای بازنویسی آن استفاده خواهیم کرد. این به ما امکان می دهد بدون از بین بردن کلیدهای اضافه شده قبلی، کلیدها را اضافه کنیم.
دستور کامل به شکل زیر است:
 
cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
ممکن است پیام زیر را مشاهده کنید:
 
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 را فشار دهید.
پس از آن، باید از شما خواسته شود رمز عبور حساب کاربری ریموت را وارد کنید:
 
Output
:این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید.1's password
 
پس از وارد کردن رمز عبور، محتوای کلید id_rsa.pub شما در انتهای فایل authorized_keys حساب کاربری از ریموت کپی می‌شود. در صورت موفقیت آمیز بودن، به مرحله 3 بروید.
 
کپی کردن کلید عمومی به صورت دستی
اگر دسترسی SSH مبتنی بر رمز عبور به سرور خود را ندارید، باید فرآیند فوق را به صورت دستی تکمیل کنید.
ما به صورت دستی محتوای فایل id_rsa.pub شما را به فایل ~/.ssh/authorized_keys در دستگاه ریموت شما اضافه می کنیم.
برای نمایش محتوای کلید id_rsa.pub، این را در رایانه محلی خود تایپ کنید:
cat ~/.ssh/id_rsa.pub
محتوای کلید را خواهید دید که باید چیزی شبیه به چند خط کد باشد.
با هر روشی که در دسترس دارید به هاست ریموت خود دسترسی پیدا کنید. هنگامی که به حساب خود در سرور ریموت دسترسی پیدا کردید، باید مطمئن شوید که دایرکتوری ~/.ssh وجود دارد. این دستور در صورت لزوم دایرکتوری را ایجاد می کند یا اگر از قبل وجود داشته باشد کاری انجام نمی دهد:
mkdir -p ~/.ssh
 
اکنون می‌توانید فایل authorized_keys را در این دایرکتوری ایجاد یا تغییر دهید. می توانید محتویات فایل id_rsa.pub خود را به انتهای فایل authorized_keys اضافه کنید و در صورت لزوم با استفاده از این دستور آن را ایجاد کنید:
echo public_key_string >> ~/.ssh/authorized_keys
در دستور بالا، عبارت public_key_string را با خروجی دستور cat ~/.ssh/id_rsa.pub که در سیستم محلی خود اجرا کرده اید، جایگزین کنید. باید با ssh-rsa AAAA شروع شود....
در نهایت، ما مطمئن خواهیم شد که دایرکتوری ~/.ssh و فایل authorized_keys دارای مجموعه مجوزهای مناسب هستند:
chmod -R go= ~/.ssh
این به صورت بازگشتی تمام مجوزهای "group" و "other" را برای دایرکتوری ~/.ssh/ حذف می کند. اگر از حساب root برای تنظیم کلیدهای یک حساب کاربری استفاده می کنید، همچنین مهم است که دایرکتوری ~/.ssh متعلق به کاربر باشد و نه روت:
chown -R admin:admin ~/.ssh
در این آموزش کاربر ما admin نام دارد اما شما میتوانید نام کاربری دلخواه خود را با دستور بالا جایگزین کنید. اکنون می‌توانیم با سرور اوبونتو احراز هویت بدون رمز عبور را انجام دهیم.
 
مرحله 3 - احراز هویت به سرور اوبونتو با استفاده از کلیدهای SSH
اگر یکی از مراحل بالا را با موفقیت انجام داده اید، باید بتوانید بدون ارائه رمز عبور حساب ریموت وارد میزبان ریموت شوید. روند اصلی یکسان است:
ssh username@remote_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 را برای ادامه فشار دهید.
اگر رمز عبور کلید خصوصی خود را ارائه نکرده اید، بلافاصله وارد سیستم خواهید شد. اگر هنگام ایجاد کلید یک رمزعبور برای کلید خصوصی ارائه کرده اید، از شما خواسته می شود که آن را وارد کنید (توجه داشته باشید که تایپ کیبورد شما در جلسه ترمینال برای امنیت نمایش داده نمی شود). پس از احراز هویت، یک shell جدید باید با حساب پیکربندی شده در سرور اوبونتو برای شما باز شود.
اگر احراز هویت مبتنی بر کلید موفقیت آمیز بود، ادامه دهید تا یاد بگیرید چگونه با غیرفعال کردن احراز هویت رمز عبور، سیستم خود را بیشتر ایمن کنید.
 
مرحله 4 - غیرفعال کردن احراز هویت رمز عبور در سرور شما
اگر توانستید با استفاده از SSH بدون رمز عبور وارد حساب خود شوید، احراز هویت مبتنی بر کلید SSH را با موفقیت در حساب خود پیکربندی کرده اید. با این حال، مکانیسم احراز هویت مبتنی بر رمز عبور شما هنوز فعال است، به این معنی که سرور شما همچنان در معرض حملات brute-force قرار دارد.
 
قبل از تکمیل مراحل این بخش، مطمئن شوید که یا احراز هویت مبتنی بر کلید SSH را برای حساب ریشه در این سرور پیکربندی کرده‌اید، یا ترجیحاً احراز هویت مبتنی بر کلید SSH را برای یک حساب غیر روت با امتیازات sudo پیکربندی کرده‌اید. این مرحله ورودهای مبتنی بر رمز عبور را قفل می‌کند، بنابراین اطمینان از اینکه همچنان بتوانید دسترسی مدیریتی داشته باشید بسیار مهم است.
 
هنگامی که تأیید کردید که حساب ریموت شما دارای امتیازات مدیریتی است، با کلیدهای SSH وارد سرور ریموت خود شوید، چه به صورت روت یا با یک حساب دارای امتیازات sudo. سپس، فایل پیکربندی SSH Daemon را باز کنید:
sudo nano /etc/ssh/sshd_config
در داخل فایل، دستورالعملی به نام PasswordAuthentication را جستجو کنید. این خط ممکن است با یک # در ابتدای خط توضیح داده شود. با حذف #، خط را از کامنت خارج کنید و مقدار را روی no قرار دهید. این قابلیت شما را برای ورود از طریق SSH با استفاده از رمزهای عبور حساب غیرفعال می کند.
پس از اتمام کار، فایل را با فشار دادن CTRL+X و سپس Y برای تایید ذخیره فایل و در نهایت ENTER برای خروج از نانو، ذخیره کرده و ببندید. برای فعال کردن این تغییرات، باید سرویس sshd را مجددا راه اندازی کنیم:
sudo systemctl restart ssh
به عنوان یک اقدام احتیاطی، یک پنجره ترمینال جدید باز کنید و قبل از بستن جلسه فعلی خود تست کنید که سرویس SSH به درستی کار می کند:
ssh username@remote_host
هنگامی که مشاهده کردید سرویس SSH شما به درستی کار می کند، می توانید با خیال راحت تمام sessionهای سرور فعلی را ببندید. SSH در سرور اوبونتو شما اکنون فقط به احراز هویت مبتنی بر کلید SSH پاسخ می دهد. ورودهای مبتنی بر رمز عبور غیرفعال شده است.  امیدواریم این مقاله آموزشی برای شما مفید بوده باشد، برای دیدن باقی آموزش ها میتوانید وارد منوی پشتیبانی بخش آموزش ها شوید، در صورتی که درباره این آموزش به مشکل یا سوالی برخورد کردید، میتوانید آن را در بخش دیدگاه بیان کنید.
 
 
 
 
 
 

 

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید

خرید هاست

 

آموزش های مرتبط