مقدمه
SSH یا همان پوسته ایمن پروتکل رمزگذاری شده است که برای اداره و برقراری ارتباط با سرورها استفاده می شود.
هنگام کار با سرور CentOS ، احتمالاً بیشتر وقت خود را در محیط ترمینال متصل به سرور خود از طریق SSH سپری خواهید کرد.
در این راهنما ، ما روی تنظیم SSH Keys برای سرور CentOS 8 تمرکز خواهیم کرد.
SSH Keys روشی ساده و مطمئن برای ورود به سرور شما ارائه می دهند و برای همه کاربران توصیه می شود.
مرحله 1 – ایجاد RSA Key Pair
اولین قدم ایجاد یک کلیدی در دستگاه شما است:
ssh-keygen
به طور پیش فرض ، ssh-keygen یک جفت کلید RSA 2048 بیتی ایجاد می کند ، که برای اکثر موارد استفاده به اندازه کافی ایمن است.
پس از وارد کردن فرمان ، باید خروجی زیر را مشاهده کنید:
Output Generating public/private rsa key pair. Enter file in which to save the key (/your_home/.ssh/id_rsa):
ENTER را فشار دهید تا جفت کلید را در فهرست (.ssh / subdirectory) در فهرست خانه خود ذخیره کنید ، یا یک مسیر جایگزین را مشخص کنید.
اگر قبلاً یک جفت کلید 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 8
سریعترین راه برای کپی کردن کلید عمومی خود در میزبان 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 [email protected]'s password:
گذرواژه را وارد کنید (تایپ شما برای اهداف امنیتی نمایش داده نمی شود) و ENTER را فشار دهید.
این ابزار با استفاده از گذرواژه ای که شما ارائه داده اید ، به میزبان از راه دور وصل می شود.
سپس محتویات کلید ~ / .ssh / id_rsa.pub خود را در پرونده remote / .ssh / مجاز_پس از حساب راه دور کپی می کند.
باید خروجی زیر را مشاهده کنید:
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 ادامه دهید.
کپی کردن کلید عمومی با استفاده از SSH
اگر شناسه ssh-copy را در دسترس ندارید ، اما دسترسی SSH مبتنی بر رمز عبور به یک حساب کاربری روی سرور خود دارید ، می توانید کلیدهای خود را با استفاده از یک روش معمولی SSH بارگذاری کنید.
ما می توانیم این کار را با استفاده از دستور cat انجام دهیم تا محتوای کلید عمومی SSH را در رایانه محلی خود بخوانیم و از طریق اتصال SSH به سرور از راه دور لوله کشی کنیم.
از طرف دیگر ، می توانیم اطمینان حاصل کنیم که فهرست ~ / .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 [email protected]'s password:
پس از وارد کردن گذرواژه ، محتوای کلید id_rsa.pub شما در انتهای پرونده مجاز_کلی حساب کاربری از راه دور کپی می شود. اگر این موفقیت آمیز بود ، به مرحله 3 ادامه دهید.
کپی کردن کلید عمومی به صورت دستی
اگر دسترسی SSH مبتنی بر رمز عبور به سرور خود ندارید ، باید مراحل فوق را به صورت دستی انجام دهید.
ما به طور دستی محتوای پرونده id_rsa.pub خود را به پرونده ~ / .ssh / مجاز_کارت در دستگاه از راه دور خود اضافه خواهیم کرد.
برای نمایش محتوای کلید 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== sammy@host
با استفاده از روش دیگری که در دسترس دارید ، به میزبان از راه دور خود وارد شوید.
پس از دسترسی به حساب کاربری خود در سرور راه دور ، باید اطمینان حاصل کنید که فهرست ~ / .ssh وجود دارد.
این دستور در صورت لزوم دایرکتوری ایجاد می کند یا در صورت وجود هیچ کاری انجام نمی دهد:
mkdir -p ~/.ssh
اکنون می توانید در این دایرکتوری پرونده مجاز autkey را ایجاد یا اصلاح کنید.
می توانید مطالب مربوط به پرونده id_rsa.pub خود را به انتهای فایل مجاز autkey اضافه کنید و در صورت لزوم با استفاده از این دستور آن را ایجاد کنید:
echo public_key_string >> ~/.ssh/authorized_keys
در دستور فوق ، public_key_string را با خروجی دستور گربه ~ / .ssh / id_rsa.pub که بر روی سیستم محلی خود اجرا کرده اید ، جایگزین کنید. باید از ssh-rsa AAAA شروع شود …
سرانجام ، ما اطمینان خواهیم یافت که فهرست ~ / .shsh و فایل مجاز_keys مجموعه مجوزهای مناسب را دارند:
chmod -R go= ~/.ssh
به طور بازگشتی همه مجوزهای “گروه” و “دیگر” را برای فهرست ~ / .ssh / حذف می کند.
اگر برای تنظیم کلیدهای یک حساب کاربری از root root استفاده می کنید ، مهم است که فهرست ~ / .ssh متعلق به کاربر باشد و نه برای روت کردن:
chown -R parsvds:parsvds ~/.ssh
در این آموزش کاربر parsvds نامگذاری شده است اما باید نام کاربری مناسب را در دستور فوق جایگزین کنید.
اکنون می توانیم با سرور 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 – غیرفعال کردن احراز هویت رمز عبور در سرور شما
اگر توانستید با استفاده از SSH و بدون رمز ورود به حساب خود وارد شوید ، تأیید هویت مبتنی بر کلید SSH را با موفقیت پیکربندی کرده اید. با این حال ، مکانیسم تأیید اعتبار مبتنی بر رمز عبور شما هنوز فعال است ، به این معنی که سرور شما هنوز در معرض حملات است.
قبل از انجام مراحل در این بخش ، مطمئن شوید که احراز هویت مبتنی بر کلید SSH را برای حساب اصلی در این سرور پیکربندی کرده اید ، یا ترجیحاً این را دارید که احراز هویت مبتنی بر کلید SSH را برای یک حساب غیر root در این پیکربندی کرده اید.
سرور با امتیازات sudo. در این مرحله ورود به سیستم های مبتنی بر گذرواژه قفل خواهد شد ، بنابراین اطمینان از اینکه هنوز هم می توانید دسترسی اداری داشته باشید بسیار مهم است.
هنگامی که تأیید کردید که حساب از راه دور شما دارای امتیازات اداری است ، با کلیدهای SSH ، به صورت ریشه یا با یک حساب دارای امتیازات سودو وارد سرور خود شوید. سپس پرونده پیکربندی Daemon SSH را باز کنید:
sudo vi /etc/ssh/sshd_config
در داخل پرونده ، یک راهنمایی با نام PasswordAuthentication را جستجو کنید.
این ممکن است با # هش توضیح داده شود. i را فشار دهید تا vi را در حالت درج قرار دهید ، و سپس خط را لغو اعتبار کنید و مقدار را روی 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 پاسخ می دهد.
تأیید هویت مبتنی بر گذرواژه با موفقیت غیرفعال شد
امنیت ، سرعت ، پشتیبانی
همه یکجا در سرویس های پارس وی دی اس
بهترین را از ما بخواهید