• 2 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت SSh-Key در لینوکس
#1
توضیح مفهوم کلید عمومی/خصوصی کمی سخته، ولی سعی می کنم اون رو به شیوه ساده ای بیان کنم تا متوجه اصل ماجرا بشید.

بطور خلاصه، اساس کار SSh-Key مبتنی بر رمزنگاری بر کلید عمومی هست. به این صورت که شما دو کلید ایجاد می کنید: یکی کلید عمومی(public key) و دیگری کلید خصوصی(private key). که در اینجا کلید عمومی نقش قفل رو داره و کلید خصوصی نقش کلید!

شما می تونید کلید عمومی(public key) خودتون رو به هر کسی بدید یا در هر جایی قرار بدید... چراکه تنها عملکردش رمزی کردن داده هاست و هیچ کارایی دیگه ای نداره. پس چیزی هم شما رو تهدید نمی کنه. کلید دیگه، کلید خصوصی هه(private key)، که شما نباید اون رو به کسی بدید! و عملکردش رمزگشایی داده هاست. (داده های رمزگذاری شده توسط کلید عمومی)

شیوه تعامل این دو کلید به این صورته که:
1- سرور/remote یک پیام کوتاه رو توسط کلید عمومی شما [که قبلاً بهش داده بودید رو] رمزگذاری و اون به کامپیوتر شما ارسال میکنه.
2- کامپیوتر شما، این پیام رمزگذاری شده رو دریافت و با کلید خصوصی شما اون رو رمزگشایی میکنه و اون رو به سرور/remote ارسال می کنه.
3- در نهایت، سرور/remote هویت شما رو [از نظر مالک کلید خصوصی] شناسایی میکنه و بلافاصله دسترسی های لازم رو به شما اعطا می کنه. بهمین سادگی!


فهرست/مندرجات:
  • دانلود برنامه
  • ساخت SSh-Key
  • آپلود 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>
لینوکس Debian:
کد:
dpkg -i <MY-FILE-NAME.deb>;
یا
sudo dpkg -i <MY-FILE-NAME.deb>
لینوکس Arch:
کد:
pacman -S <MY-FILE-NAME>
لینوکس Ubuntu:
کد:
sudo apt install <MY-FILE-NAME.deb>
لینوکس SUSE
کد:
zypper install <MY-FILE-NAME>

  • ساخت SSh-Key
1- برنامه کنسول/terminal سیستم رو باز کنید.

2- بعد داخل پنجره [سیاه] باز شده، عبارت زیر رو بنویسید و بعد کلید ENTER رو بزنید:
برای OpenSSh یا Git
کد:
ssh -t rsa -C "[email protected]"
برای PuTTY
کد:
puttygen -t rsa -C "[email protected]"
بجای عبارت [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
1- به مسیری که SSh-Key رو ساختید برید، در اونجا باید دو فایل با نام id_rsa و id_rsa.pub داشته باشید. فایل id_rsa.pub رو با برنامه Notepad (یا هر ویرایشگری دیگه) باز کنید و فقط و فقط خط اول رو کامل کپی کنید.
دقت کنید خط دوم که خالی هست رو کپی نکنید.
نکته: فایل 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]
وبلاگ: Yousha.Blog.ir


کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بیشتر => نگهداری بهتر
  پاسخ
تشکر شده توسط : sara147 admin
#2
با دستور
کد:
ssh-copy-id [email protected]
میشه کلید رو به راحتی در مقصد قرار داد.
  پاسخ
تشکر شده توسط : Y.P.Y
#3
آره میدونم، از طریق my personal keys هم میشه انجامش داد. ولی اینجا remote مشخصی نداریم و آموزش basic هستش
بعلاوه خواستم اون مراحل طی بشه تا نکته هارو بگم و کمی user-exp رو بالا ببرم

درضمن بگمونم اون دستورت یه i- کم داره وگرنه تمام فایلها رو میفرسته به سرور lol

ویراش: ssh-copy-id رو هم بهش اضافه کردم
وبلاگ: Yousha.Blog.ir


کد کمتر => خطای کمتر => قابل فهمتر => خوانایی بیشتر => نگهداری بهتر
  پاسخ
تشکر شده توسط : admin
#4
(۱۳۹۴ اردیبهشت ۰۳, ۱۲:۳۰ ق.ظ)Y.P.Y نوشته: آره میدونم، از طریق my personal keys هم میشه انجامش داد. ولی اینجا remote مشخصی نداریم و آموزش basic هستش
بعلاوه خواستم اون مراحل طی بشه تا نکته هارو بگم و کمی user-exp رو بالا ببرم

درضمن بگمونم اون دستورت یه i- کم داره وگرنه تمام فایلها رو میفرسته به سرور lol

نه اگه -i رو نذاری کلید پیشفرض رو انتقال میده.
کد:
-i identity_file
             Use only the key(s) contained in identity_file (rather than looking for identities via ssh-add(1) or in the default_ID_file).  If the
             filename does not end in .pub this is added.  If the filename is omitted, the default_ID_file is used.

             Note that this can be used to ensure that the keys copied have the comment one prefers and/or extra options applied, by ensuring that
             the key file has these set as preferred before the copy is attempted.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان