نحوه SSH Git clone در Git Hub

می‌دونید که دو روش SSH و HTTPS برای Clone کرد repositoryهای Git وجود داره. همون طور که برای اهالی ویندوز HTTPS خوش‌آیندتر هست لینوکسی‌ها SSH پسند هستن. البته جفتشون در هر دو محیط ممکن‌ هستن ولی خب! قشنگی SSH برای اهالی کامند لاین و سرور لینوکس هست که به جای این که هر بار کاربر نام کاربری و رمز عبورش رو بزنه یک رمز که طی ساخت SSH تعیین کرده رو میزنه برای پول و پوش و .... .



برای SSH clone شما نیاز به یک SSH-Key دارید که در زیر نحوه ساختن رو گفتیم. بعد از ساخت باید این کلید رو در سایت GitHub یا هر سرویس دهنده‌ دیگری که استفاده می‌کنید درج کنید بعد هم درخواست Clone رو می‌زنید و تمام!

ساخت SSH-Key با ssh-keygen

1- محیط command line یا همون ترمینال یا bash رو اجرا کنید.

2- دستور زیر را اجرا کنید و قبلش لازمه به جای [email protected] ایمیل حساب کاربری Git Hubتون رو وارد کنید.

ssh-keygen -t rsa -b 4096 -C "[email protected]"

3- بعد از اجرا مقدار زیر رو خواهید دید که خط اول برای اطلاع رسانی هست و میگه قرار هست یک RSA Key رو بسازه و خط بعد هم مسیر ایجاد فایل رو میپرسه که بهتره Enter رو بزنید و همون مسیر پیش فرضش انتخاب بشه. فقط یادتون باشه ادرسش کجاست!

Generating public/private rsa key pair.
Enter a file in which to save the key (/root/.ssh/id_rsa):[Press enter]

4- حالا یک رمز عبور ازتون می‌‌خواد که وقتی بخواهید Clone بگیرید باید اون رو بزنید.

Enter passphrase (empty for no passphrase): [Type a passphrase]

5- رمز عبور رو دوباره تایپ کنید و Enter بزنید.

Enter same passphrase again: [Type passphrase again]

6- خب SSH-Key در مسیر انتخاب شده در مرحله 3 ساخته شده. حالا باید اون فایل رو باز کنید و در Git Hubتون وارد کنید.

cat ~/.ssh/id_rsa.pub


درج SSH-Key در GitHub

به تنظیمات حساب کاربری گیت‌هابتون برید و از منو SSH and GPG keys را انتخاب کنید. بر روی دکمه New SSH key کلیک کنید. در فیلد Title عنوانی دلخواه وارد کنید و در فیلد Key محتویات فایل id_rsa.pub که در مرحله 6 کپی کردید را در اینجا درج کنید و بر روی دکمه Add SSH key کلیک کنید.


انجام SSH Git Clone

حالا برید و git clone کنید و وقتی پسورد خواست همون پسورد مرحله 4 رو بزنید و کلون انجام می‌شود و تمام.

git clone [email protected]:username/repository.git