در این ویدیو ابتدا با گیتهاب آشنا شده و سپس نحوه ساخت کلید ssh و اتصال به گیتهاب را بررسی میکنیم. یکی از امن ترین راه ها برای برقراری ارتباط از طریق اینترنت عمومی استفاده از ssh است. به همین دلیل است که راه اندازی کلید ssh در گیتهاب اولویت اصلی برای کاربران سرویس محبوب Git است. خوشبختانه، فرآیند پیکربندی کلید SSH به خصوص در توزیع لینوکس مانند اوبونتو نسبتاً ساده است.
راهنمای مطالعه
# کلید ssh چیست؟
SSH یا Secure Shell راهی امن برای اتصال به کلاینت فراهم می کند. کلید ssh داده های منتقل شده از طریق شبکه را رمزگذاری می کند و یک لایه امنیتی اضافی ایجاد می کند. کلیدهای SSH در اندازه های مختلفی وجود دارند، اما یک انتخاب محبوب رمزگذاری 2048 بیتی RSA است که با رمز عبور 617 رقمی قابل مقایسه است.
کلیدهای SSH اتوماسیونی را فعال می کنند که خدمات ابری مدرن و سایر خدمات وابسته به رایانه را ممکن و مقرون به صرفه می کند. آنها در صورت مدیریت صحیح، راحتی و امنیت را بهبود می بخشند.
کلیدهای SSH از نظر عملکردی شبیه رمزهای عبور هستند. آنها اجازه دسترسی می دهند و کنترل می کنند که چه کسی می تواند به چه چیزی دسترسی داشته باشد. در مدیریت هویت و دسترسی، آنها به خط مشی ها، تدارک و خاتمه مانند حساب های کاربری و رمز عبور نیاز دارند. بدون کنترل کلیدهای SSH نمی توان محرمانه بودن، یکپارچگی، یا هرگونه تضمینی برای ادامه در دسترس بودن سیستم ها داشت.
کلیدهای SSH همیشه به صورت جفت هستند و هر جفت از یک کلید خصوصی و یک کلید عمومی تشکیل شده است. چه کسی یا چه چیزی این کلیدها را در اختیار دارد، نوع جفت کلید SSH را تعیین می کند. اگر کلید خصوصی و کلید عمومی نزد کاربر باقی بماند، این مجموعه از کلیدهای SSH به عنوان کلیدهای کاربر نامیده می شود. اما اگر کلیدهای خصوصی و عمومی بر روی یک سیستم راه دور باشند، این جفت کلید به عنوان کلید میزبان شناخته می شود.
# گیتهاب چیست؟
github یک پلتفرم برای اشتراک گذاری پروژه هایی است که از git استفاده میکنند. با استفاده از github میتوانید پروژه های خودتان را به بقیه برنامه نویس ها نشان داده و از کمک آنها بهره مند شوید. تاکنون ابزارها و تکنولوژی ها متعددی در github با کمک بقیه برنامه نویس ها ساخته شده اند. در حال حاضر بیش از 40 میلیون برنامه نویس و 100 میلیون پروژه در گیتهاب وجود دارد.
در واقع گیتهاب یک وب سایت و سرویس مبتنی بر ابر(cloud) است که به توسعه دهندگان کمک می کند تا کد خود را ذخیره و مدیریت کنند و همچنین تغییرات کد خود را ردیابی و کنترل کنند. رابط GitHub به اندازه کافی کاربرپسند است، بنابراین حتی کدنویسان مبتدی نیز می توانند از Git استفاده کنند. بدون GitHub، استفاده از Git به طور کلی نیاز به دانش فنی و استفاده از خط فرمان دارد.
علاوه بر این، هر کسی می تواند در گیتهاب ثبت نام کرده و یک مخزن کد عمومی را به صورت رایگان میزبانی کند، که این باعث محبوبیت گیتهاب به ویژه در پروژه های منبع باز میشود.
# ساخت کلید ssh در لینوکس
در این بخش نحوه ساخت کلید ssh در سیستم عامل لینوکس را بررسی میکنیم. در لینوکس برای ساخت کلید ssh از دستور ssh-keygen استفاده میشود:
ssh-keygen
دستور ssh-keygen بدون هیچ آپشن اضافی میتوانید یک کلید جدید ایجاد کند. اما میتوانید گزینه های دیگری نیز به این دستور اضافه کنید. مثلا برای ایجاد یک جفت کلید جدید 4096 بیتی SSH با آدرس ایمیل خود به عنوان کامنت، دستور زیر را اجرا کنید:
ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"
بعد از اجرا دستور بالا، لینوکس از شما مکان و نام فایل جدید را میپرسد که در صورتی که مقدار وارد نکنید، لینوکس به عنوان پیشفرض مسیر انتخابی خود را خواهد داشت:
Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
مکان و نام فایل پیش فرض برای اکثر کاربران مناسب است. برای پذیرش و ادامه، Enter را فشار دهید.
در مرحله بعد، از شما خواسته می شود که یک عبارت عبور(passphrase) امن را تایپ کنید. یک عبارت عبور یک لایه امنیتی دیگر اضافه می کند. اگر یک عبارت عبور تنظیم کنید، هر بار که از کلید برای ورود به دستگاه راه دور استفاده می کنید، از شما خواسته می شود که آن را وارد کنید.
اگر نمیخواهید یک عبارت عبور تنظیم کنید، Enter را فشار دهید.
Enter passphrase (empty for no passphrase):
کل عملیات چیزی شبیه به این خواهد بود:
github@ubuntu:~/.ssh$ ssh-keygen -o -t rsa -C "github@mcnz.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Your identification has been saved in /home/ubuntu/.ssh/id_rsa
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub
The key fingerprint is: SHA256:g7RTuw9S+...
The key's randomart image is:
+---[RSA 3072]----+
| ..Bo+.+o.. |
|. *.= +E . . |
| ...+ .. . . |
| +.. ...+ o |
| B o ++ S |
| o . * = o + |
| o B.oo . |
| = oo + |
| .o .o . |
+----[SHA256]-----+
برای اینکه مطمئن شوید کلید ssh به درستی تنظیم شده، دستور زیر را وارد کنید:
ls ~/.ssh/id_*
# OUTPUT
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
همانطور که میبیند دو فایل به نام id_rsa ایجاد میشود که یکی از آنها پسوند pub دارد که به معنی عمومی بودن آن است. کلید عمومی(id_rsa.pub) را میتوانید در سرورهای مختلف جایگذاری کنید اما کلید خصوصی(id_rsa) باید در نزد شما محفوظ بماند.
میتوانید محتویات داخلی فایل id_rsa.pub را با دستور زیر مشاهده کنید:
github@ubuntu:~/.ssh$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCwrUzqtm
3K9YNI2WbXxkcfnHZgyW7/3WXghBbKndhbKbCR00JLfTHsK
Kaz17c4xIHQrw7u0GsPXai6pMtwMeVmXQH00L5hD0WE5Ioo
# ساخت کلید ssh در ویندوز
ساخت کلید ssh در ویندوز هم مشابه لینوکس است. ویندوز 10 از زمان بهروزرسانی آوریل 2018، یک کلاینت داخلی OpenSSH دارد.
در ویندوز وارد Command Prompt شده، ssh-keygen را تایپ کرده و Enter را بزنید. این دستور به طور خودکار کلیدهای SSH را تولید می کند. در تست های ما روی ویندوز 11، یک کلید RSA 2048 بیتی ایجاد کرد.
در ادامه مراحل، ویندوز از شما مکان ذخیره کلید ssh و عبارت عبور(passphrase) را درخواست خواهد کرد که میتوانید همانند لینوکس عمل کنید.
# اضافه کردن کلید ssh به گیتهاب
بعد از ایجاد کردن کلیدهای ssh باید این کلید ها را در گیتهاب اضافه کنیم. برای اینکار ابتدا یک حساب کاربری در گیتهاب ایجاد کرده و وارد پروفایل خود شوید. وارد تنظیمات حساب کاربر(settings) شوید و روی گزینه SSH and GPG keys کلیک کنید. سپس روی دکمه سبز رنگ New SSH key کلیک کنید.
در صفحه جدید مقدار Title را یک اسم دلخواه وارد کنید و در بخش Key کلیدی که در فایل id_rsa.pub وجود دارد را اضافه کنید. سپس روی دکمه Add SSH key کلیک کنید تا عملیات پایان یابد.
با تکمیل راهاندازی کلید SSH گیتهاب، اکنون میتوانید بدون نیاز به رمز عبور به گیتهاب متصل شده و عملیات های مختلف مانند pull یا push یا clone را انجام دهید.
ارسال نظر