campaign-edianeh-98

آموزش ساخت کلید یا SSH key برای Git در Github



visibility  
mode_comment   ۰

آموزش ساخت کلید یا SSH key برای Git در Githubدر این مطلب میخوام ساخت SSH key برای Git رو بهتون آموزش بدم تا بتونین به راحتی به remote مورد نظرتون وصل شده و پروژه مورد نظرتون رو مدیریت کنید.

زمانی که در Command line با git کار میکنید یکی از روشهای اصلی برای احراز هویت یا Authentication، استفاده از SSH key هست. در این مطلب میخوایم ببینیم که چطور میتونیم SSH key رو به وجود آورده و از اون استفاده کنیم.

زمانی که میخواید پروژه Git که بر روی لوکال از اون استفاده میکنید رو در Github یا ... قرار بدین، هر بار که بخواید با اون کاری رو انجام بدین، باید username و password رو وارد کنید و دردسر داره و وقت زیادی رو میگیره.

بیشتر ابزارهای گرافیکی مانند Github desktop که برای کار با Git وجود داره، کارهای مربوط به Authentication رو بصورت اتوماتیک برای شما انجام میدن. ولی بیشتر اوقات ما میخوایم در command line با git کار کنیم و باید کار با SSH key رو بلد باشیم.

برای پروژه‌هایی که private هستند، برای اینکه بتونین از اونا pull کنید و پروژه رو بر روی سیستم خودتون قرار بدین، باید SSH key داشته باشید.

کلیدهای موجود در کامپیوتر شما

کلیدهای SSH در دایرکتوری ~/.ssh ذخیره‌سازی میشن. شما میتونین هر تعدادی که بخواید کلید در این دایرکتوری بسازید و استفاده کنید چون علاوه بر Git برای چیزهای بسیار زیادی از کلیدهای SSH استفاده میشه.

برای اینکه ببینید کلیدی از قبل وجود داره یا نه، در ابتدا در ویندوز git bash رو باز کرده و دستور ls -la ~/.ssh رو اجرا کنید. بصورت زیر:

همونطور که میبینید من چند کلید از قبل دارم که از اونا استفاده میکنم. همونطور که میبینید کلیدها جفت جفت هستند و یکی با .pub و دیگری بدون .pub هست. فایلی که دارای پسوند .pub هست حاوی کلید public یا عمومی هست در حالی که فایل بدون پسوند حاوی کلید private یا خصوصی هست و نباید هیچ جایی اون رو share کنید و در اختیار دیگران قرار بدین.

اگر شما کلید خصوصی رو از دست بدین باید یک جفت کلید دیگه تعریف کنید و از اونا استفاده کنید چونکه احراز هویت بدون داشتن کلید خصوصی یا private key انجام نمیشه.

ساخت کلید جدید

شما میتونین با استفاده از دستور ssh-key که بر روی همه سیستم‌عاملها وجود داره، یک کلید جدید رو به وجود بیارید. اگر git رو بر روی ویندوز خودتون نصب کرده باشید و git bash به همراه اون نصب شده باشه، این دستور نیز در اختیار شما قرار خواهد گرفت.

برای ساخت کلید در ویندوز در git bash دستور زیر رو اجرا کنید:

همونطور که میبینید در آخر به عنوان یک comment ایمیل رو وارد میکنیم. شما میتونین هر ایمیلی که دلتون بخواد رو وارد کنید و اصلا مهم نیست که همون ایمیلی باشه که در Github دارید از اون استفاده میکنید و حتی میتونین یک رشته تصادفی یا Random رو وارد کنید. ولی تا جایی که میتونین این ایمیلها رو درست و مرتبط وارد کنید تا متوجه بشید که چرا و برای چه چیزی این کلید رو به وجود آوردید.

با اجرای دستور بالا، از شما پرسیده میشه که کلید را کجا و با چه نامی ذخیره کند. معمولا به عنوان اولین کلید اسم id_rsa پیشنهاد میشه ولی الزامی نیست و بهتره که اسمی که یادتون بیاد چرا این کلید رو به وجود آوردید رو بر روی کلید قرار بدین. مثلا چون میخوایم در این مطلب از کلید برای github استفاده کنیم، بهتره که اسم اون رو github_rsa قرار بدیم. پس آدرس رو /c/Users/Mohammad/.ssh/github_rsa قرار میدم. بصورت زیر:

همونطور که میبینید در انتها یک کلید برای ما ساخته شد و حالا اگر مجددا پوشه .ssh رو بررسی کنیم، خواهیم دید که کلید جدید اضافه شده است:

میبینید که github_rsa اضافه شده است.

اضافه کردن کلید به Github

برای اینکار در ابتدا وارد اکانت Github خودتون بشید و در منو بر روی Setting کلیک کنید:

حالا از لیست منوی سمت چپ، SSH and GPG Keys رو انتخاب کنید:

همونطور که میبینید من یک SSH key از قبل در Github قرار دادم و حالا میتونم کلیدهای دیگه‌ای رو با استفاده از دکمه New SSH key اضافه کنم. بر روی این دکمه کلیک میکنم:

در قسمت title یک عنوان به دلخواه قرار بدین که یادتون بمونه که این کلیک برای چه چیزی قرار داده شده است. در قسمت key هم باید همون کلیدی که در بالا ساختیم رو قرار بدیم. شما باید محتویات فایل github_rsa.pub رو کپی کرده و درون این باکس قرار بدین. شما میتونین به هر روشی محتوای این فایل رو کپی کرده و در این باکس paste کنید. یک راه ساده برای کپی کردن استفاده از دستور clip < ~/.ssh/github_rsa.pub هستش.

با اینکار محتوای فایل مورد نظر در clipboard قرار میگیره و میتونین هر جایی که بخواید اون رو paste کنید. این کدها رو در باکس key قرار داده و Add SSH key رو فشار بدین.

حالا کلید مورد نظر ساخته میشه. کلید github_rsa رو باید به ssh-agent اضافه کنیم تا اون رو مدیریت کنه و بتونیم از اون استفاده کنیم. برای اینکار ابتدا مطمئن میشیم که ssh-agent در حال اجرا هست یا خیر و اگر در حال اجرا نیست، اون رو راه اندازی میکنیم. برای اینکار بصورت زیر عمل میکنیم:

میبینید که کلید مورد نظر اضافه شد. حالا برای اینکه اتصال بین سیستم خودمون و github رو تست کنیم میتونیم بصورت زیر عمل کنیم. در ابتدا دستور زیر رو اجرا میکنیم:

شما ممکنه که یک warning بصورت زیر رو ببینید:

yes رو تایپ کرده و enter بزنید. با اینکار در صورتی که همه چیز درست باشه متن زیر رو خواهید دید و Github به شما سلام میکنه:

اگر مشکلی وجود داشته باشه میتونین با استفاده از این لینک مشکلتون رو برطرف کنید.

comment دیدگاه کاربران

add_circle ارسال دیدگاه

خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :