توضیح مفهوم کلید عمومی/خصوصی کمی سخته، ولی سعی می کنم اون رو به شیوه ساده ای بیان کنم تا متوجه اصل ماجرا بشید.
بطور خلاصه، اساس کار SSh-Key مبتنی بر رمزنگاری بر کلید عمومی هست. به این صورت که شما دو کلید ایجاد می کنید: یکی کلید عمومی(public key) و دیگری کلید خصوصی(private key). که در اینجا کلید عمومی نقش قفل رو داره و کلید خصوصی نقش کلید!
شما می تونید کلید عمومی(public key) خودتون رو به هر کسی بدید یا در هر جایی قرار بدید... چراکه تنها عملکردش رمزی کردن داده هاست و هیچ کارایی دیگه ای نداره. پس چیزی هم شما رو تهدید نمی کنه. کلید دیگه، کلید خصوصی هه(private key)، که شما نباید اون رو به کسی بدید! و عملکردش رمزگشایی داده هاست. (داده های رمزگذاری شده توسط کلید عمومی)
شیوه تعامل این دو کلید به این صورته که:
1- سرور/remote یک پیام کوتاه رو توسط کلید عمومی شما [که قبلاً بهش داده بودید رو] رمزگذاری و اون به کامپیوتر شما ارسال میکنه.
2- کامپیوتر شما، این پیام رمزگذاری شده رو دریافت و با کلید خصوصی شما اون رو رمزگشایی میکنه و اون رو به سرور/remote ارسال می کنه.
3- در نهایت، سرور/remote هویت شما رو [از نظر مالک کلید خصوصی] شناسایی میکنه و بلافاصله دسترسی های لازم رو به شما اعطا می کنه. بهمین سادگی!
فهرست/مندرجات:
از جمله این برنامه های میشه PuTTY, SecureCRT, lsh, PAC Manager, OpenSSh, Git رو نام برد که من در اینجا به OpenSSh, lsh, PuTTY و Git میپردازم...
توجه: درصورتی که یکی از برنامه های OpenSSh, lsh, PuTTY یا Git رو نصب دارید، این قسمت رو رها و به قسمت ساخت SSh-Key در پایین رجوع کنید! (که قطعاً دارید)
1- ابتدا جدیدترین نسخه برنامه OpenSSh یا برنامه Git یا Installer برنامه PuTTY مناسب سیستم عامل تون رو دانلود کنید: (در فرم باز شده Search کنید)
لینوکس Slackware:
http://packages.slackware.com
لینوکس Debian:
https://packages.debian.org/index
لینوکس Arch:
https://archlinux.org/packages
لینوکس Ubuntu:
http://packages.ubuntu.com
لینوکس SUSE:
https://software.opensuse.org/find
2- حالا کنسول رو باز و به مسیر فایل دانلود شده برید، بعد دستور زیر رو بزنید تا نصب بشه:
لینوکس Slackware:
لینوکس Debian:لینوکس Arch:لینوکس Ubuntu:لینوکس SUSE
2- بعد داخل پنجره [سیاه] باز شده، عبارت زیر رو بنویسید و بعد کلید ENTER رو بزنید:
برای OpenSSh یا Gitبرای PuTTYبجای عبارت [email protected]، آدرس ایمیل واقعی تون رو بنویسید.
نکته: اگر عضو یکی سایت هایی مثل GitHub, GitLab, BitBucket, SourceForge و... هستید، پیشنهاد می کنم اون آدرس ایمیلی که در اون سایت باهاش عضو شدید رو بنویسید.
3- حالا از شما سوالی درباره مسیر ساخت SSh-Key میپرسه، که پیشنهاد می کنم همون مسیر پیشفرض خودش رو قبول کنید و کلید ENTER رو فشار بدید.
در لینوکس این مسیر پیشفرض برابره با: /<YOUR-USERNAME>/.ssh/
البته شاید این دایکتوری بدایلی مخفی/hidden باشه, لذا مجبورید فایلهای مخفی رو نمایان کنید.
توجه: اگر با پیامی شبیه already exists یا Overwrite مواجه شدید، این یعنی شما درحال حاضر SSh-Key دارید و نیاز به ساخت مجدد اون ندارید پس کلید ENTER رو بزنیدتا عملیات متوقف بشه. مگر اینکه قصد داشته باشید یک SSh-Key جدید بسازید، پس می نویسید y و کلید ENTER رو میزنید تا overwrite بشه.
4- حالا از شما می خواد که رمزی رو برای این SSh-Key وارد کنید... رمز رو وارد و کلید ENTER رو بزنید. بعد، مجدداً از شما درباره رمز سوال میکنه، رمز قبلی رو وارد و کلید ENTER رو میزنید.
نکته: اگر عضو یکی سایت هایی مثل GitHub, GitLab, BitBucket, SourceForge و... هستید، پیشنهاد می کنم همون رمزی که در اون سایت باهاش عضو شدید رو وارد کنید. (که فراموش نکنید)
SSh-Key شما ساخته شد!
دقت کنید خط دوم که خالی هست رو کپی نکنید.
نکته: فایل id_rsa.pub، فایل کلید عمومی هست. یعنی این کلید رو در کامپیوتر/سرور/remote ای که می خواهید بهش متصل بشید قرار میدید (که به شما گفته میشه کجا و چگونه). اما فایل id_rsa، فایل کلید خصوصی هست. پس این فایل باید در کامپیوتر شما بمونه!
2- به سایت مورد نظرتون برید و login کنید. بعد بدنبال گزینه Settings یا Profile settings یا Preferences بگردید و بعد روش کلیک کنید. سپس در صفحه باز شده گزینه ی SSh keys یا SSh Settings رو پیدا و روش کلیک کنید.
3- بعد از باز شدن صفحه SSh Keys، دکمه Add new key یا Add SSh key رو بزنید و محتوایی که قبلاً از داخل فایل id_rsa.pub کپی کرده بودید رو در اونجا paste کنید.
در آخر دکمه Add یا Save رو بزنید. تمام!
بطور خلاصه، اساس کار SSh-Key مبتنی بر رمزنگاری بر کلید عمومی هست. به این صورت که شما دو کلید ایجاد می کنید: یکی کلید عمومی(public key) و دیگری کلید خصوصی(private key). که در اینجا کلید عمومی نقش قفل رو داره و کلید خصوصی نقش کلید!
شما می تونید کلید عمومی(public key) خودتون رو به هر کسی بدید یا در هر جایی قرار بدید... چراکه تنها عملکردش رمزی کردن داده هاست و هیچ کارایی دیگه ای نداره. پس چیزی هم شما رو تهدید نمی کنه. کلید دیگه، کلید خصوصی هه(private key)، که شما نباید اون رو به کسی بدید! و عملکردش رمزگشایی داده هاست. (داده های رمزگذاری شده توسط کلید عمومی)
شیوه تعامل این دو کلید به این صورته که:
1- سرور/remote یک پیام کوتاه رو توسط کلید عمومی شما [که قبلاً بهش داده بودید رو] رمزگذاری و اون به کامپیوتر شما ارسال میکنه.
2- کامپیوتر شما، این پیام رمزگذاری شده رو دریافت و با کلید خصوصی شما اون رو رمزگشایی میکنه و اون رو به سرور/remote ارسال می کنه.
3- در نهایت، سرور/remote هویت شما رو [از نظر مالک کلید خصوصی] شناسایی میکنه و بلافاصله دسترسی های لازم رو به شما اعطا می کنه. بهمین سادگی!
فهرست/مندرجات:
- دانلود برنامه
- ساخت SSh-Key
- آپلود SSh-Key
- دانلود برنامه
از جمله این برنامه های میشه PuTTY, SecureCRT, lsh, PAC Manager, OpenSSh, Git رو نام برد که من در اینجا به OpenSSh, lsh, PuTTY و Git میپردازم...
توجه: درصورتی که یکی از برنامه های OpenSSh, lsh, PuTTY یا Git رو نصب دارید، این قسمت رو رها و به قسمت ساخت SSh-Key در پایین رجوع کنید! (که قطعاً دارید)
1- ابتدا جدیدترین نسخه برنامه OpenSSh یا برنامه Git یا Installer برنامه PuTTY مناسب سیستم عامل تون رو دانلود کنید: (در فرم باز شده Search کنید)
لینوکس Slackware:
http://packages.slackware.com
لینوکس Debian:
https://packages.debian.org/index
لینوکس Arch:
https://archlinux.org/packages
لینوکس Ubuntu:
http://packages.ubuntu.com
لینوکس SUSE:
https://software.opensuse.org/find
2- حالا کنسول رو باز و به مسیر فایل دانلود شده برید، بعد دستور زیر رو بزنید تا نصب بشه:
لینوکس Slackware:
کد:
installpkg <MY-FILE-NAME.txz>
یا
upgradepkg --install-new <MY-FILE-NAME.txz>
یا
sudo installpkg <MY-FILE-NAME.txz>
کد:
dpkg -i <MY-FILE-NAME.deb>;
یا
sudo dpkg -i <MY-FILE-NAME.deb>
کد:
pacman -S <MY-FILE-NAME>
کد:
sudo apt install <MY-FILE-NAME.deb>
کد:
zypper install <MY-FILE-NAME>
- ساخت SSh-Key
2- بعد داخل پنجره [سیاه] باز شده، عبارت زیر رو بنویسید و بعد کلید ENTER رو بزنید:
برای OpenSSh یا Git
کد:
ssh -t rsa -C "[email protected]"
کد:
puttygen -t rsa -C "[email protected]"
نکته: اگر عضو یکی سایت هایی مثل GitHub, GitLab, BitBucket, SourceForge و... هستید، پیشنهاد می کنم اون آدرس ایمیلی که در اون سایت باهاش عضو شدید رو بنویسید.
3- حالا از شما سوالی درباره مسیر ساخت SSh-Key میپرسه، که پیشنهاد می کنم همون مسیر پیشفرض خودش رو قبول کنید و کلید ENTER رو فشار بدید.
در لینوکس این مسیر پیشفرض برابره با: /<YOUR-USERNAME>/.ssh/
البته شاید این دایکتوری بدایلی مخفی/hidden باشه, لذا مجبورید فایلهای مخفی رو نمایان کنید.
توجه: اگر با پیامی شبیه already exists یا Overwrite مواجه شدید، این یعنی شما درحال حاضر SSh-Key دارید و نیاز به ساخت مجدد اون ندارید پس کلید ENTER رو بزنیدتا عملیات متوقف بشه. مگر اینکه قصد داشته باشید یک SSh-Key جدید بسازید، پس می نویسید y و کلید ENTER رو میزنید تا overwrite بشه.
4- حالا از شما می خواد که رمزی رو برای این SSh-Key وارد کنید... رمز رو وارد و کلید ENTER رو بزنید. بعد، مجدداً از شما درباره رمز سوال میکنه، رمز قبلی رو وارد و کلید ENTER رو میزنید.
نکته: اگر عضو یکی سایت هایی مثل GitHub, GitLab, BitBucket, SourceForge و... هستید، پیشنهاد می کنم همون رمزی که در اون سایت باهاش عضو شدید رو وارد کنید. (که فراموش نکنید)
SSh-Key شما ساخته شد!
- آپلود SSh-Key
دقت کنید خط دوم که خالی هست رو کپی نکنید.
نکته: فایل id_rsa.pub، فایل کلید عمومی هست. یعنی این کلید رو در کامپیوتر/سرور/remote ای که می خواهید بهش متصل بشید قرار میدید (که به شما گفته میشه کجا و چگونه). اما فایل id_rsa، فایل کلید خصوصی هست. پس این فایل باید در کامپیوتر شما بمونه!
2- به سایت مورد نظرتون برید و login کنید. بعد بدنبال گزینه Settings یا Profile settings یا Preferences بگردید و بعد روش کلیک کنید. سپس در صفحه باز شده گزینه ی SSh keys یا SSh Settings رو پیدا و روش کلیک کنید.
3- بعد از باز شدن صفحه SSh Keys، دکمه Add new key یا Add SSh key رو بزنید و محتوایی که قبلاً از داخل فایل id_rsa.pub کپی کرده بودید رو در اونجا paste کنید.
در آخر دکمه Add یا Save رو بزنید. تمام!
![[عکس: lightbulb.png]](https://blog.ir/media/script/ckeditor/4.3.2/plugins/smiley/images/lightbulb.png)