با استفاده از احراز هویت بدون رمز عبور، در زمان ورود به GitHub از طریق SSH صرفه جویی کنید.
احراز هویت با GitHub معمولاً شامل استفاده از رمز دسترسی یا رمز عبور است. با این حال، این روشها میتوانند ناخوشایند و ناامن باشند، مخصوصاً هنگام دسترسی به GitHub از چندین دستگاه.
گیت هاب گزینه ای برای استفاده از پوسته امن (SSH) برای احراز هویت فراهم می کند. SSH یک پروتکل شبکه ایمن برای دسترسی از راه دور ماشین ارائه می دهد. این ویژگی به ویژه در موقعیت هایی که نیاز به اتوماسیون یا دسترسی مکرر از راه دور دارند، ارزشمند است.
آشنایی با احراز هویت SSH
احراز هویت با SSH شامل استفاده از کلیدهای رمزنگاری برای ایجاد یک اتصال امن (تونل) بین یک کلاینت (ماشین محلی) و یک سرور (GitHub) است.
هنگام استفاده از SSH برای GitHub، کاربر یک جفت کلید SSH ایجاد می کند – یک کلید عمومی و یک کلید خصوصی. کلید عمومی در حساب GitHub کاربر آپلود می شود، در حالی که کلید خصوصی به طور ایمن در ماشین محلی کاربر ذخیره می شود.
این فرآیند را می توان به مفهوم قفل و کلید تشبیه کرد. کلید عمومی (قفل) در نظر گرفته شده است که به طور آشکار به اشتراک گذاشته شود و به طور ایمن در سمت سرور ذخیره شود. این به عنوان همتای کلید خصوصی عمل می کند و سرور را قادر می سازد هویت ماشین محلی شما را تأیید کند. برعکس، کلید خصوصی (کلید) به عنوان یک شناسه منحصر به فرد که منحصراً در ماشین محلی شما ذخیره می شود عمل می کند و احراز هویت موفقیت آمیز با سرور را امکان پذیر می کند.
در طی احراز هویت با GitHub، ماشین محلی شما کلید خصوصی خود را به عنوان مدرک هویت ارائه می کند. سرور بررسی می کند که آیا کلید عمومی مربوطه مرتبط با حساب GitHub شما با کلید خصوصی داده شده مطابقت دارد یا خیر. اگر کلیدها مطابقت داشته باشند، سرور اجازه دسترسی می دهد و یک اتصال رمزگذاری شده و ایمن برای ارتباط برقرار می کند.
راه اندازی SSH برای GitHub
در این بخش، نحوه تنظیم SSH برای احراز هویت با GitHub را خواهید دید.
1. ایجاد جفت کلید SSH
فرآیند تولید یک جفت کلید SSH اولین گام برای استفاده از SSH برای احراز هویت است.
- ترمینال یا خط فرمان خود را باز کنید.
- دستور زیر را برای ایجاد یک جفت کلید SSH جدید اجرا کنید: ssh-keygen -t rsa -b 4096 -C “youremail@domain.com”
- از شما خواسته می شود که یک مکان فایل را برای ذخیره جفت کلید وارد کنید. برای پذیرش مکان پیش فرض (~/.ssh/id_rsa) یا تعیین یک مکان سفارشی، Enter را فشار دهید. > ایجاد جفت کلید عمومی/خصوصی rsa. > فایلی را وارد کنید که در آن کلید ذخیره شود (/home/vagrant/.ssh/id_rsa):
- در مرحله بعد، از شما خواسته می شود که یک عبارت عبور را وارد کنید. اگر چه اختیاری است، افزودن یک عبارت عبور به عنوان یک سطح امنیتی اضافی عمل می کند. حتما رمز عبور خود را به خاطر بسپارید. > عبارت عبور را وارد کنید (خالی برای بدون عبارت عبور): > دوباره همان عبارت عبور را وارد کنید:
- پس از تولید جفت کلید، باید دو فایل را در محل مشخص شده مشاهده کنید. id_rsa (کلید خصوصی) و id_rsa.pub (کلید عمومی). > شناسه شما در /home/vagrant/.ssh/id_rsa ذخیره شده است. > کلید عمومی شما در /home/vagrant/.ssh/id_rsa.pub ذخیره شده است.
- پس از اتمام، اثر انگشت کلید و تصویر تصادفی نمایش داده می شود.
- در نهایت، برای افزودن به GitHub به محتوای کلید عمومی نیاز دارید. دستور زیر را برای دریافت محتوا اجرا کنید: cat ~/.ssh/id_rsa.pub
ssh-keygen -t rsa -b 4096 -C "youremail@domain.com"
> Generating public/private rsa key pair.
> Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):
> Enter passphrase (empty for no passphrase):
> Enter same passphrase again:
> Your identification has been saved in /home/vagrant/.ssh/id_rsa.
> Your public key has been saved in /home/vagrant/.ssh/id_rsa.pub.
cat ~/.ssh/id_rsa.pub
مطمئن شوید که مسیر (~/.ssh/id_rsa.pub در مورد من) را که هنگام ایجاد کلیدها استفاده کرده اید، مشخص کنید.
محتوا را در مکانی امن و موقت برای استفاده بعدی کپی کنید.
2. افزودن کلید عمومی به GitHub
اکنون که یک جفت کلید SSH ایجاد کرده اید، باید کلید عمومی را به حساب GitHub خود اضافه کنید.
- وارد حساب GitHub خود شوید و به تنظیمات حساب خود بروید.
- روی کلیدهای SSH و GPG واقع در نوار کناری سمت چپ کلیک کنید.
- روی New SSH key کلیک کنید.
- به کلید SSH خود یک عنوان بدهید.
- محتوای کلید عمومی را در قسمت کلید قرار دهید.
- در نهایت بر روی کلید Add SSH کلیک کنید تا کلید SSH در حساب GitHub شما ذخیره شود.
شما با موفقیت کلید عمومی را به حساب GitHub خود صادر کرده اید.
3. پیکربندی یک عامل SSH
یک عامل SSH برنامه ای است که به مدیریت کلیدهای SSH کمک می کند و راهی امن برای ذخیره و استفاده از آنها ارائه می دهد. در حین احراز هویت SSH به عنوان یک واسطه بین ماشین محلی شما و سرور راه دور عمل می کند. این به شما امکان می دهد چندین کلید SSH را برای حساب های مختلف GitHub مدیریت کنید.
- مطمئن شوید که عامل SSH در حال اجرا است. $ eval “$(ssh-agent -s)” > عامل pid 2757
- کلید خصوصی را به عامل SSH اضافه کنید. $ ssh-add ~/.ssh/id_rsa > عبارت عبور /home/vagrant/.ssh/id_rsa را وارد کنید: > شناسه اضافه شده: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)
$ eval "$(ssh-agent -s)"
> Agent pid 2757
$ ssh-add ~/.ssh/id_rsa
> Enter passphrase for /home/vagrant/.ssh/id_rsa:
> Identity added: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)
شما با موفقیت یک عامل SSH را برای مدیریت کلیدهای خود پیکربندی کرده اید.
4. تست اتصال SSH
اکنون می توانید آزمایش کنید تا تأیید کنید که اتصال SSH شما به درستی تنظیم شده است و می توانید با استفاده از SSH در GitHub احراز هویت کنید.
- برای تست اتصال SSH به GitHub دستور زیر را اجرا کنید. ssh -T git@github.com اگر همه چیز خوب پیش برود، یک هشدار در مورد اثر انگشت خواهید دید. برای ادامه، اثر انگشت را تأیید کنید و بله را تایپ کنید. > صحت میزبان «github.com (140.92.130.4)» نمی تواند ثابت شود. > اثر انگشت کلید ECDSA SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM است. > آیا مطمئن هستید که می خواهید به اتصال ادامه دهید (بله/خیر)؟
- پس از تایپ بله، خروجی مشابه تصویر زیر را مشاهده خواهید کرد. > هشدار: “github.com,140.92.130.4” (ECDSA) برای همیشه به لیست میزبان های شناخته شده اضافه شد. > سلام princewillingoo! شما با موفقیت احراز هویت را انجام دادید، اما GitHub دسترسی پوسته را فراهم نمی کند.
ssh -T git@github.com
> The authenticity of host 'github.com (140.92.130.4)' can't be established.
> ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
> Are you sure you want to continue connecting (yes/no)?
> Warning: Permanently added 'github.com,140.92.130.4' (ECDSA) to the list of known hosts.
> Hi princewillingoo! You've successfully authenticated, but GitHub does not provide shell access.
این نشان می دهد که احراز هویت موفقیت آمیز بوده است.
مدیریت مخازن با SSH
پیکربندی SSH به شما این امکان را می دهد که مخازن خود را بدون نگرانی در مورد مشکلات رمز عبور و نشانه های دسترسی مدیریت کنید.
تنظیم URL از راه دور
git remote set-url origin git@github.com:<username>/<repository>.git
شبیه سازی یک مخزن
git clone git@github.com:<username>/<repository>.git
فشار دادن تغییرات به یک مخزن
git push origin <branch>
کشیدن تغییرات از یک مخزن
git pull origin <branch>
مزایای SSH نسبت به احراز هویت با رمز عبور
استفاده از SSH برای احراز هویت چندین مزیت قابل توجه را نسبت به روش های سنتی احراز هویت مبتنی بر رمز عبور ارائه می دهد. این شامل:
- احراز هویت SSH نیاز به رمز عبور را از بین می برد و خطر سرقت اعتبار را کاهش می دهد.
- استفاده از کلیدهای رمزنگاری باعث می شود در مقایسه با گذرواژه ها در برابر حملات brute-force مصونیت بیشتری داشته باشد.
- اگر کلید خصوصی شما به خطر افتاده است، می توانید آن را باطل کرده و جایگزین کنید و کلید در معرض خطر را بی استفاده کنید.
به همین دلیل، احراز هویت SSH در مقایسه با احراز هویت رمز عبور گزینه بهتری است.
بهترین روش ها و عیب یابی
برای اطمینان از راهاندازی روان و ایمن SSH، لازم است بهترین روشها را دنبال کنید و از مشکلات رایجی که ممکن است رخ دهد و راههای عیبیابی آنها آگاه باشید.
- همیشه یک عبارت عبور برای ایجاد یک لایه امنیتی اضافی تنظیم کنید.
- چرخش مکرر کلید و پشتیبان گیری را تمرین کنید.
- برای جلوگیری از خطاهای مجوز یا پیکربندی نادرست عامل SSH، هر مرحله را تأیید کنید.
با رعایت این بهترین شیوه ها، می توانید با اطمینان از احراز هویت SSH برای GitHub استفاده کنید.
تطبیق پذیری SSH
SSH به طور گسترده در مناطق دیگر برای مدیریت از راه دور سرورها، میکروکنترلرها و دستگاههای شبکه استفاده میشود، زیرا امکان دسترسی ایمن به رابط خط فرمان (CLI) را فراهم میکند و کاربران را قادر میسازد تا وظایف مختلف، پیکربندی تنظیمات، انتقال فایلها و عیبیابی مشکلات را انجام دهند.