نحوه تنظیم کلیدهای SSH در CentOS 8
SSH یا همان پوسته ایمن پروتکل رمزگذاری شده است که برای اداره و برقراری ارتباط با سرور مجازی ها استفاده می شود. هنگام کار با سرور مجازی CentOS ، احتمالاً بیشتر وقت خود را در یک بخش ترمینال متصل به سرور مجازی خود از طریق SSH سپری خواهید کرد.
در این راهنما ، ما روی تنظیم کلیدهای SSH برای سرور مجازی CentOS 8 تمرکز خواهیم کرد. کلیدهای SSH روشی ساده و مطمئن برای ورود به سرور مجازی شما را ارائه می دهند و برای همه کاربران توصیه می شوند.
مرحله 1 – ایجاد جفت کلید RSA
اولین قدم ایجاد یک جفت کلیدی در دستگاه مشتری (معمولاً رایانه محلی شما) است:
$ ssh-keygen
به طور پیش فرض ، ssh-keygen یک جفت کلید RSA 2048 بیتی ایجاد می کند ، که برای اکثر موارد استفاده به اندازه کافی ایمن است (ممکن است شما به صورت اختیاری فلگ -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 ایجاد کرده بودید ، ممکن است پیغام زیر را مشاهده کنید:
Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?
اگر تصمیم به بازنویسی کلید در دیسک دارید ، دیگر نمی توانید با استفاده از کلید قبلی ، تأیید اعتبار کنید. در انتخاب بله بسیار مراقب باشید ، زیرا این یک روند مخرب است که قابل برگشت نیست.
سپس باید اعلان زیر را مشاهده کنید:
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:
a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host
The key’s randomart image is:
+–[ RSA 2048]—-+
| ..o |
| E o= . |
| o. o |
| .. |
| ..S |
| o o. |
| =o.+. |
|. =++.. |
|o=++. |
+—————–+
اکنون یک کلید عمومی و خصوصی دارید که می توانید از آن برای تأیید اعتبار استفاده کنید. مرحله بعدی این است که کلید عمومی را روی سرور مجازی خود وارد کنید تا بتوانید از ورود مبتنی بر کلید SSH به سیستم استفاده کنید.
مرحله 2 – کپی کردن کلید عمومی روی سرور مجازی CentOS
سریعترین راه برای کپی کردن کلید عمومی خود در هاست CentOS ، استفاده از ابزاری به نام 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
این بدان معنی است که رایانه محلی شما هاست از راه دور را تشخیص نمی دهد. احتمالا اولین باری است که به هاست جدید وصل می شوید. بله را تایپ کنید و 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
username@203.0.113.1’s password:
گذرواژه را وارد کنید (تایپ کردن شما برای اهداف امنیتی نمایش داده نمی شود) و ENTER را فشار دهید. این ابزار با استفاده از گذرواژه ای که شما ارائه داده اید ، به هاست از راه دور متصل می شود. سپس محتویات کلید ~ / .ssh / id_rsa.pub خود را در فایل ~/.ssh/authorized_keys اکانت از راه دور کپی می کند.
باید خروجی زیر را مشاهده کنید:
Output
Number of key(s) added: 1
Now try logging into the machine, with: “ssh ‘username@203.0.113.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 به سرور مجازی از راه دور pipe بزنیم.
از طرف دیگر ، می توانیم اطمینان حاصل کنیم که دیرکتوری ~ / .ssh وجود دارد و دارای مجوزهای صحیح تحت حسابی است که ما از آن استفاده می کنیم.
سپس می توانیم محتویاتی را که به آن پیوند زده ایم را درون یک فایل به نام authorized_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
این بدان معنی است که رایانه محلی شما هاست از راه دور را تشخیص نمی دهد. احتمالا اولین باری است که به هاست جدید وصل می شوید. بله را تایپ کنید و ENTER را برای ادامه فشار دهید.
پس از آن ، از شما خواسته می شود رمزعبور حساب کاربری از راه دور را وارد کنید:
Output
username@203.0.113.1’s password:
پس از وارد کردن گذرواژه ، محتوای کلید id_rsa.pub شما در انتهای فایل authorized_keys حساب کاربری از راه دور کپی می شود. اگر موفقیت آمیز بود ، به مرحله 3 بروید.
کپی کردن کلید عمومی به صورت دستی
اگر دسترسی SSH مبتنی بر رمز عبور به سرور مجازی خود ندارید ، باید مراحل فوق را به صورت دستی انجام دهید.
ما به طور دستی محتوای فایل id_rsa.pub خود را به فایل ~/.ssh/authorized_keysدر دستگاه از راه دور شما اضافه خواهیم کرد.
برای نمایش محتوای کلید id_rsa.pub خود ، این دستور را در رایانه محلی خود تایپ کنید:
$ cat ~/.ssh/id_rsa.pub
محتوای کلید را مشاهده خواهید کرد ، که باید چیزی شبیه به این باشد:
Output
با استفاده از روش دیگری که در دسترس دارید ، به هاست از راه دور خود وارد شوید.
پس از دسترسی به حساب کاربری خود در سرور مجازی راه دور ، باید اطمینان حاصل کنید که دیرکتوری ~ / .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… شروع شود .
سرانجام ، ما اطمینان خواهیم یافت که دیرکتوری ~ / .shsh و فایل authorized_keys مجموعه مجوزهای مناسب را دارند:
$ chmod -R go= ~/.ssh
به طور بازگشتی همه مجوزهای “group” و “other” را برای دیرکتوری ~ / .ssh / حذف می کند.
اگر برای تنظیم کلیدها برای یک حساب کاربری از root استفاده می کنید ، مهم است که دیرکتوری ~ / .ssh متعلق به کاربر باشد و نه برای root :
$ chown -R sammy:sammy ~/.ssh
در این آموزش کاربر Sammy نامگذاری شده است اما باید نام کاربری مناسب را در دستور فوق جایگزین کنید.
اکنون می توانیم با سرور مجازی CentOS خود احراز هویت مبتنی بر کلید را امتحان کنیم.
مرحله 3 – ورود به سرور مجازی CentOS با استفاده از کلیدهای 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
این بدان معنی است که رایانه محلی شما هاست از راه دور را تشخیص نمی دهد. بله را تایپ کنید و سپس ENTER را برای ادامه فشار دهید.
اگر هنگام ایجاد جفت کلید خود در مرحله 1 ، عبارت عبور ارائه نکردید ، بلافاصله وارد سیستم می شوید. اگر یک عبارت عبور را ارائه کرده باشید، اکنون از شما خواسته می شود آن را وارد کنید. پس از تأیید اعتبار ، باید یک بخش پوسته جدید با حساب پیکربندی شده روی سرور مجازی CentOS باز شود.
اگر تأیید هویت مبتنی بر کلید موفقیت آمیز بود ، ادامه مطلب را بخوانید تا بیاموزید چگونه با غیرفعال کردن تأیید هویت مبتنی بر رمزعبور سرور مجازی SSH ، امنیت بیشتری در سیستم خود داشته باشید.
مرحله 4 – غیرفعال کردن احراز هویت (Authentication) رمز عبور در سرور مجازی شما
اگر توانستید با استفاده از SSH و بدون رمز ورود به حساب خود وارد شوید ، تأیید هویت مبتنی بر کلید SSH را با موفقیت پیکربندی کرده اید. با این حال ، مکانیسم تأیید اعتبار مبتنی بر رمز عبور شما هنوز فعال است ، به این معنی که سرور مجازی شما هنوز در معرض حملات جدی است.
قبل از انجام مراحل در این بخش ، مطمئن شوید که احراز هویت مبتنی بر کلید SSH را برای حساب اصلی در این سرور مجازی پیکربندی کرده اید ، یا ترجیحاً احراز هویت مبتنی بر کلید SSH را برای یک حساب غیر root در این سرور مجازی با امتیازات sudo پیکربندی کرده اید. در این مرحله، ورودهای مبتنی بر رمز عبور به سیستم قفل خواهد شد ، بنابراین بسیار مهم است اطمینان حاصل کنید که هنوز هم می توانید دسترسی ادمین داشته باشید.
هنگامی که تأیید کردید که حساب از راه دور شما دارای امتیازات ادمین است ، با کلیدهای SSH ، به صورت ریشه یا با یک حساب دارای امتیازات سودو وارد سرور مجازی راه دور خود شوید. سپس فایل پیکربندی Daemon SSH را باز کنید:
$ sudo vi /etc/ssh/sshd_config
در داخل فایل ، یک راهنمایی با نام PasswordAuthentication را جستجو کنید. ممکن است با # توضیح داده شود. i را فشار دهید تا vi را در حالت درج قرار دهید ، و سپس خط را uncomment کنید و مقدار را روی no تنظیم نمایید. با این کار توانایی ورود به سیستم از طریق SSH با استفاده از گذرواژه های اکانت غیرفعال می شود:
/etc/ssh/sshd_config
…
PasswordAuthentication no
…
پس از اتمام ایجاد تغییرات ، ESC و سپس: wq را برای نوشتن تغییرات در فایل فشار دهید و خارج شوید. برای اجرای واقعی این تغییرات ، باید سرویس sshd را مجدداً راه اندازی کنیم:
$ sudo systemctl restart sshd
برای احتیاط ، قبل از بستن بخش فعلی خود ، یک پنجره ترمینال جدید باز کنید و آزمایش کنید که سرویس SSH به درستی کار می کند:
$ ssh username@remote_host
هنگامی که تأیید کردید که سرویس SSH همچنان به درستی کار می کند ، می توانید با اطمینان تمام بخش های فعلی سرور مجازی را ببندید.
اکنون Daemon SSH در سرور مجازی CentOS شما فقط به کلیدهای SSH پاسخ می دهد. تأیید هویت مبتنی بر گذرواژه با موفقیت غیرفعال شد.
نتیجه
اکنون باید بتوانید تأیید هویت مبتنی بر کلید SSH را روی سرور مجازی خود پیکربندی کنید ، که به شما امکان می دهد بدون ارائه رمز ورود به حساب کاربری خود وارد شوید.
اگر می خواهید در مورد کار با SSH اطلاعات بیشتری کسب کنید ، به راهنمای ضروریات SSH ما نگاهی بیندازید.
از این لینک ها زیر می توانید آمورش های بیشتری برای لینوکس پیدا کنید :
نحوه نصب Nginx در CentOS 8 – استفاده از Cron برای خودکارسازی کارها در اوبونتو 18
پکیج کردن و انتشار برنامه Snap در اوبونتو 18 – نصب و استفاده ازRadamsa برای فوز کردن برنامه ها روی Ubuntu 18
استقرارهای تولید Node.js خود را با Shipit در CentOS 7 – نحوه راه اندازی Eclipse Theia Cloud IDE Platform در Debian 10
چگونگی استفاده از migrations و seeders دیتابیس – نحوه نصب Docker Compose در Debian 10
نحوه نصب R روی اوبونتو 18.04 – چگونه می توان با کتابخانه (library) درخواست ها در پایتون شروع به کار کرد
چگونه می توان هاست های مجازی Apache را در اوبونتو 18.04 – نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو 18.04
نصب پشته Nginx، MySQL، PHP LEMP در CentOS 8 – نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE در CentOS 7
نحوه نصب پشته یا استک Nginx ، MySQL ، PHP LEMP – بسته بندی برنامه Laravel 6 برای توسعه با Docker Compose
مراحل ایمن سازی Apache HTTP در FreeBSD 12 – بهینه سازی درخواست های MySQL با ذخیره سازی ProxySQL در اوبونتو 16
درک Objectهای Map و Set در JavaScript – استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو 18
نحوه راه اندازی Eclipse Theia Cloud IDE در اوبونتو – چگونه می توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04
نحوه استفاده از Cron برای خودکارسازی کارها در CentOS 8 – چگونه می توان از رول های ansible برای انتزاع محیط زیرساختی
نحوه نوشتن کد ناهمگام (غیر همزمان) در Node.js – نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو 18
راه اندازی اولیه سرور با CentOS 8 – تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes
نحوه تنظیم کلیدهای SSH در CentOS 8 – نحوه نصب و استفاده از PostgreSQL در CentOS 7
نحوه ساختن یک برنامه Node.js با Docker Quickstart – چگونه می توان پلتفرم Eclipse Theia Cloud IDE را روی اوبونتو
چگونه می توان هاست های مجازی Apache را در اوبونتو – مدیریت DNS با استفاده از DNSControl در Debian 10
نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04 – چگونه می توان پلتفرم Cloud IDE کد سرور را روی CentOS 7
نحوه نصب و استفاده از TimescaleDB در CentOS 7 – نحوه نصب Apache Kafka در Debian 10
نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04 – نحوه نصب وردپرس با OpenLiteSpeed در اوبونتو 18.04
کلمات کلیدی خرید سرور
خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی ارزان هلند – vps – خرید vps هلند – خرید سرور مجازی آمریکا – خرید vps فرانسه – تست vps – سرور مجازی تست – سرور مجازی ویندوز – ارزانترین vps – خرید وی پی اس – vps ارزان –
https://vpsgol.net/product/vps-germany/
https://vpsgol.net/product/vps-usa/
https://vpsgol.net/product/vps-france/
https://vpsgol.net/product/vps-canada/
https://vpsgol.net/product/vps-poland/
https://vpsgol.net/product/vps-netherlands/
https://vpsgol.net/product/vps-england/