نحوه استفاده از SSH برای اتصال ایمن به GitHub: راهنمای ساده برای سیستم عامل ویندوز
در این مقاله، پروتکل Secure Shell (SSH)، ابزاری حیاتی برای ایمن سازی ارتباطات شبکه را تحلیل خواهیم کرد.
SSH به طور گسترده برای دسترسی به سرورهای راه دور و مدیریت مخازن کد به طور ایمن، به ویژه در محیط هایی مانند GitHub استفاده می شود. شما با مفاهیم اساسی SSH، نحوه کارکرد آن و مراحل عملی راه اندازی آن در ویندوز آشنا خواهید شد. ما همه چیز را از تولید کلیدهای SSH گرفته تا آزمایش اتصال شما و مخازن شبیه سازی را پوشش خواهیم داد.
در پایان این راهنما، شما درک کاملی از SSH خواهید داشت و برای بهبود گردش کار خود با اتصالات امن مجهز خواهید شد.
آنچه را پوشش خواهیم داد:
نحوه استفاده از SSH در ویندوز
Windows PowerShell یا Command Prompt
زیرسیستم ویندوز برای لینوکس (WSL)
مشتریان SSH شخص ثالث (به عنوان مثال، PuTTY)
نحوه استفاده از SSH در ویندوز برای اتصال به GitHub
نصب از طریق ویندوز ویژگی های اختیاری
دانلود و نصب از Github
چگونه کلید عمومی را به GitHub اضافه کنیم
شبیه سازی یک مخزن با استفاده از SSH
پیش نیازها
قبل از شروع این آموزش، مطمئن شوید که موارد زیر را دارید:
درک اولیه از خط فرمان : شما باید با استفاده از رابط خط فرمان (CLI) در ویندوز، از جمله نحوه باز کردن PowerShell یا Command Prompt آشنا باشید.
سیستم عامل ویندوز : این آموزش به طور خاص برای کاربرانی که از ویندوز 10 یا نسخه های جدیدتر استفاده می کنند طراحی شده است.
OpenSSH Client نصب شده : مطمئن شوید که کلاینت OpenSSH را روی سیستم خود نصب کرده اید. شما می توانید این را با تایپ ssh
در رابط خط فرمان خود تحلیل کنید.
حساب GitHub : برای آزمایش اتصالات SSH و مدیریت مخازن به GitHub نیاز دارید.
ویرایشگر متن : همچنین به یک ویرایشگر کد (مانند Visual Studio Code، Notepad++ یا مشابه) برای ویرایش فایل های پیکربندی در صورت نیاز نیاز دارید.
SSH چیست؟
SSH مخفف پوسته امن (پروتکل) است. پروتکل پوسته امن یک پروتکل شبکه رمزنگاری برای عملیات ایمن خدمات شبکه در یک شبکه ناامن است.
به عبارت ساده تر، SSH راهی برای استفاده ایمن از خدمات در شبکه است، مانند دسترسی به یک کامپیوتر راه دور، حتی زمانی که خود شبکه کاملاً ایمن نیست. از داده ها و ارتباطات شما با درهم کردن (رمزگذاری) همه چیز محافظت می کند، پس هیچ کس نمی تواند آن را استراق سمع یا دستکاری کند، حتی اگر آن را رهگیری کند.
این به ویژه هنگام اتصال به سرویسهایی مانند GitHub مفید است، جایی که میخواهید کد را در یک سرور راه دور مدیریت کنید.
پروتکل Secure Shell چگونه کار می کند؟
SSH روی مجموعه قوانین TCP/IP اجرا می شود که رایانه ها برای برقراری ارتباط از طریق اینترنت استفاده می کنند.
TCP/IP
TCP مخفف عبارت Transmission Control Protocol است. این یکی از پروتکل های اصلی مجموعه TCP/IP است که برای ارسال داده از طریق اینترنت استفاده می شود. IP مخفف Internet Protocol است. همچنین بخشی از مجموعه قوانین TCP/IP است و وظیفه آن هدایت بسته های داده به مقصد مناسب در اینترنت است.
اگر میخواهید عمیقتر شوید، میتوانید در اینجا اطلاعات بیشتری درباره پروتکل TCP/IP بخوانید.
فرآیند اتصال SSH
پروتکل Secure Shell با ایجاد یک ارتباط امن بین یک کلاینت (ماشین محلی شما) و یک سرور راه دور عمل می کند.
ابتدا، مشتری با تعیین آدرس سرور (IP یا دامنه) و اعتبار ورود به سیستم، اتصال را آغاز می کند. در طول مرحله احراز هویت، سرور هویت مشتری را تأیید می کند، معمولاً با استفاده از یک رمز عبور یا به طور ایمن تر، کلیدهای SSH. اینها یک جفت متشکل از یک کلید خصوصی ذخیره شده در مشتری و یک کلید عمومی در سرور هستند.
پس از احراز هویت، SSH تمام داده های منتقل شده بین مشتری و سرور را رمزگذاری می کند و از محرمانه بودن و یکپارچگی اطمینان می دهد. این کانال امن به مشتری اجازه می دهد تا دستورات را اجرا کند، فایل ها را انتقال دهد و سرور را از راه دور به گونه ای مدیریت کند که گویی از نظر فیزیکی وجود دارد و در عین حال از داده ها در برابر رهگیری یا دستکاری احتمالی محافظت می کند.
IP مسئول آدرس دهی و مسیریابی درخواست اتصال اولیه از مشتری به سرور است. این تضمین می کند که درخواست، که شامل آدرس سرور است، به مقصد صحیح ارسال شود.
هنگامی که درخواست اتصال SSH به سرور می رسد، TCP یک کانال ارتباطی قابل اعتماد ایجاد می کند. انتقال داده بین مشتری و سرور را مدیریت می کند و اطمینان حاصل می کند که تمام بسته ها با دقت و ترتیب صحیح تحویل داده می شوند.
در طول جلسه SSH، TCP اطمینان حاصل می کند که بسته های داده به درستی منتقل شده و دوباره جمع می شوند، در حالی که IP آدرس دهی را مدیریت می کند. سپس SSH از این کانال ایمن و قابل اعتماد برای احراز هویت مشتری، رمزگذاری تمام داده های منتقل شده و حفظ یک اتصال امن استفاده می کند. این اجازه می دهد تا مدیریت از راه دور و انتقال فایل با محرمانه بودن و یکپارچگی.
نحوه استفاده از SSH در ویندوز
ویندوز چند راه مختلف برای استفاده از SSH ارائه می دهد:
Windows PowerShell یا Command Prompt
ویندوز دارای یک سرویس گیرنده OpenSSH داخلی است. با باز کردن PowerShell یا Command Prompt و تایپ ssh
می توانید به این دسترسی داشته باشید. این روش ساده است و نیازی به نرم افزار اضافی ندارد.
زیرسیستم ویندوز برای لینوکس (WSL)
میتوانید Windows Subsystem برای لینوکس را فعال کنید تا توزیع لینوکس را مستقیماً روی رایانه شخصی ویندوز شما اجرا کند. بسیاری از توزیعهای لینوکس دارای OpenSSH از پیش نصب شده هستند و به شما امکان میدهند از دستورات ssh
از ترمینال لینوکس استفاده کنید. اگر محیطی شبیه لینوکس را ترجیح می دهید، این روش عالی است.
مشتریان SSH شخص ثالث (به عنوان مثال، PuTTY)
اگر یک برنامه مستقل را ترجیح می دهید، ابزارهایی مانند PuTTY یک رابط گرافیکی برای مدیریت اتصالات SSH ارائه می دهند. PuTTY به طور گسترده برای اتصال به سرورها استفاده می شود و از گزینه های پیشرفته مانند ذخیره پروفایل های اتصال پشتیبانی می کند.
ویندوز 10 و نسخههای بعدی دارای یک کلاینت اصلی OpenSSH هستند که به شما امکان میدهد به طور ایمن از طریق اتصال SSH (Secure Shell) به سیستمهای راه دور متصل شوید.
نحوه استفاده از SSH در ویندوز برای اتصال به GitHub
اگر از ویندوز 10 یا نسخه جدیدتر استفاده می کنید، می توانید از قابلیت های داخلی SSH استفاده کنید.
برای شروع، ترمینال ویندوز یا PowerShell خود را ترجیحاً به عنوان مدیر باز کنید. در رابط خط فرمان، می توانید با تایپ دستور ssh
تحلیل کنید که آیا SSH نصب شده است. این تأیید می کند که آیا کلاینت SSH در سیستم شما موجود است یا خیر.
این مورد مثبت است که ssh روی سیستم نصب شده است" class="image--center mx-auto" width="620" height="157" loading="lazy">
اگر تصویر بالا را دریافت کردید، به این معنی است که SSH در سیستم محلی شما در دسترس است.
اولین چیزی که برای راه اندازی یک اتصال SSH نیاز دارید یک جفت کلید SSH است – یک کلید عمومی و یک کلید خصوصی. اینها معمولاً در دایرکتوری .ssh
در فهرست اصلی شما قرار دارند، اگر قبلاً تولید شده باشند.
در ویندوز، فهرست اصلی شما معمولاً C:\Users\owner\.ssh
است. این جایی است که فایل های کلید SSH خود را در صورتی که قبلاً تولید شده باشند، پیدا خواهید کرد.
به راحتی می توانید OpenSSH را بر روی سیستم ویندوز خود نصب کنید. چند راه برای این کار وجود دارد:
نصب از طریق ویندوز ویژگی های اختیاری
منوی استارت ویندوز را باز کنید و در نوار جستجو عبارت "optional features" را تایپ کنید.
روی « گفت ن یا حذف آپشن های اختیاری ویندوز» کلیک کنید تا پنجره آپشن های اختیاری باز شود.
در پنجره Optional Features، به پایین بروید و گزینه "OpenSSH Client" را پیدا کنید.
کادر کنار آن را علامت بزنید و روی دکمه «نصب» در پایین کلیک کنید تا کلاینت OpenSSH نصب شود.
از GitHub دانلود و نصب کنید
بسته به نسخه ویندوز خود، از مخزن GitHub برای نسخه Win32-OpenSSH (32 بیتی) یا Win64-OpenSSH (64 بیتی) دیدن کنید:
32 بیتی: https://github.com/PowerShell/Win32-OpenShell/releases
64 بیتی: https://github.com/PowerShell/Win64-OpenShell/releases
آخرین فایل نصب .msi را که با معماری ویندوز شما مطابقت دارد دانلود کنید.
نصب کننده .msi را اجرا کنید تا کلاینت OpenSSH روی سیستم شما نصب شود.
پس از نصب OpenSSH، اکنون می توانید کلیدهای SSH را با باز کردن ترمینال ویندوز یا PowerShell و اجرای دستور ssh-keygen
تولید کنید. این شما را در فرآیند ایجاد یک جفت کلید عمومی-خصوصی جدید راهنمایی می کند که می توانید از آن برای احراز هویت اتصالات SSH خود، مانند حساب GitHub خود استفاده کنید.
سپس کلید عمومی را می توان به تنظیمات حساب GitHub شما اضافه کرد و به شما امکان می دهد با استفاده از پروتکل SSH به جای HTTPS به مخازن خود متصل شوید. به یاد داشته باشید که کلید خصوصی خود را ایمن و ایمن نگه دارید، زیرا دسترسی به حساب GitHub شما را فراهم می کند.
با نصب OpenSSH، پایه لازم را برای کار با کلیدهای SSH و ایجاد اتصالات امن به سیستم ها و سرویس های راه دور مانند GitHub ایجاد کرده اید.
اکنون می توانید با دسترسی به ابزار Windows Services تحلیل کنید که آیا سرور OpenSSH در حال اجرا است. برای انجام این کار، کلید Windows + R را فشار دهید تا پنجره Run باز شود، سپس "services.msc" را وارد کرده و Enter را فشار دهید. با این کار مدیر خدمات باز می شود.
که با کلیک کردن روی "windows + r" ایجاد می شود." class="image--center mx-auto" width="395" height="197" loading="lazy">
مدیر خدمات:
از کلیک کردن روی "windows + r" ایجاد شد" class="image--center mx-auto" width="796" height="563" loading="lazy">
اسکرول کنید و به دنبال سرور openSSH SSH بگردید:
که سرور openSSH در سیستم به طور خودکار تا زمانی که سیستم روشن است در حال اجرا است" class="image--center mx-auto" width="451" height="19" loading="lazy">
اگر سرویس OpenSSH Server در پنجره Services اجرا می شود، به این معنی است که جزء سرور OpenSSH به درستی بر روی سیستم ویندوز شما تنظیم شده است. این اولین قدم مهم در فعال کردن اتصالات SSH ایمن است.
برای اطمینان از شروع خودکار سرور OpenSSH هر زمان که رایانه شخصی شما روشن است، می توانید نوع راه اندازی سرویس را بیشتر پیکربندی کنید. در پنجره Services، روی سرویس OpenSSH Server کلیک راست کرده و Properties را انتخاب کنید.
در ویژگی های سرویس، به دنبال منوی کرکره ای "نوع راه اندازی" بگردید و "Automatic" را انتخاب کنید. این اطمینان حاصل می کند که سرویس OpenSSH Server هر زمان که رایانه شما روشن می شود به طور خودکار راه اندازی می شود، نه اینکه هر بار از شما بخواهد آن را به صورت دستی راه اندازی کنید.
با تنظیم سرویس OpenSSH Server برای شروع خودکار، می توانید مطمئن باشید که سرور همیشه آماده پذیرش اتصالات SSH ورودی است، بدون اینکه نیازی به یادآوری راه اندازی دستی آن باشد. این فرآیند استفاده از احراز هویت مبتنی بر SSH و دسترسی از راه دور در دستگاه ویندوز شما را ساده می کند.
به یاد داشته باشید، اجرای سرویس OpenSSH Server و تنظیم آن برای شروع خودکار تنها اولین قدم است. شما همچنان باید کلیدهای SSH را تولید کنید و حساب GitHub خود (یا سایر خدمات) را برای استفاده از کلید عمومی برای احراز هویت پیکربندی کنید. اما این راهاندازی اولیه سرور OpenSSH، پایه و اساس استفاده یکپارچه SSH را در آینده ایجاد میکند.
را در مدیر خدمات باز کرد" class="image--center mx-auto" width="901" height="584" loading="lazy">
اکنون که تأیید کردید سرور OpenSSH روی سیستم ویندوز شما اجرا می شود، قدم بعدی این است که اطمینان حاصل کنید که می تواند از طریق فایروال ویندوز ارتباط برقرار کند. ساده ترین راه برای انجام این کار استفاده از دستور PowerShell است.
PowerShell را به عنوان مدیر باز کنید و دستور زیر را اجرا کنید:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program "C:\Program Files\OpenSSH\sshd.exe"
این دستور PowerShell یک قانون فایروال جدید ایجاد می کند که به ترافیک TCP ورودی در پورت 22 (درگاه SSH پیش فرض) برای فایل اجرایی OpenSSH Server واقع در "C:\Program Files\OpenSSH\sshd.exe" اجازه می دهد.
در اینجا به تفکیک پارامترهای مختلف استفاده شده در دستور آمده است:
-Name sshd
: نام "sshd" را به قانون جدید فایروال اختصاص می دهد.
-DisplayName 'OpenSSH SSH Server'
: یک نام نمایشی توصیفی برای قانون ارائه می دهد.
-Enabled True
: از فعال بودن و فعال بودن قانون اطمینان می دهد.
-Direction Inbound
: مشخص می کند که این قانون برای ترافیک شبکه ورودی اعمال می شود.
-Protocol TCP
: قانون را برای اجازه دادن به اتصالات پروتکل TCP پیکربندی می کند.
-Action Allow
: به فایروال دستور می دهد تا ترافیک مشخص شده را مجاز کند.
-LocalPort 22
: پورت محلی را روی 22 تنظیم می کند که پورت SSH پیش فرض است.
-Program "C:\Program Files\OpenSSH\sshd.exe"
: برنامه خاصی (قابل اجرا OpenSSH Server) را که قانون باید روی آن اعمال شود، شناسایی می کند.
با اجرای این فرمان PowerShell، یک قانون فایروال اختصاصی ایجاد می کنید که به سرور OpenSSH اجازه می دهد از طریق فایروال ویندوز ارتباط برقرار کند و شما را قادر می سازد تا اتصالات SSH ایمن را به سیستم خود برقرار کنید.
به یاد داشته باشید، همیشه تمرین خوبی است که تنظیمات فایروال خود را به طور دوره ای تحلیل کنید، به خصوص اگر تغییراتی در پیکربندی شبکه خود ایجاد کنید یا بخواهید دسترسی به سرور OpenSSH را بیشتر اصلاح کنید.
در صورت موفقیت، باید این را دریافت کنید:
که به سرور OpenSSH اجازه می دهد از طریق فایروال ویندوز ارتباط برقرار کند" class="image--center mx-auto" width="1364" height="435" loading="lazy">
خلاصه پاسخ CLI فوق:
نام قانون : sshd
نام نمایشی : OpenSSH SSH Server
جهت : ورودی
اقدام : اجازه دهید
فعال : درست است
مشخصات : هر
این قانون به گونه ای طراحی شده است که به ترافیک ورودی اجازه می دهد تا مشتریان خارجی به سرور متصل شوند. وضعیت "فعال" تأیید می کند که قانون در حال حاضر فعال است، در حالی که "نمایه" تنظیم شده روی "Any" نشان می دهد که برای همه انواع شبکه از جمله عمومی، خصوصی و دامنه اعمال می شود.
سیاست های امنیتی:
خط مشی پیمایش لبه : مسدود کردن
نگاشت منبع سست : نادرست
نگاشت فقط محلی : نادرست
"EdgeTraversalPolicy" به صورت "Block" پیکربندی شده است، که از عبور ترافیک از مرز شبکه جلوگیری می کند، به ویژه اتصال از شبکه های عمومی به شبکه های خصوصی را ممنوع می کند. این به افزایش امنیت با کاهش آسیبپذیریهای احتمالی کمک میکند.
تنظیمات "LooseSourceMapping" و "LocalOnlyMapping" هر دو روی false تنظیم شدهاند و اطمینان میدهند که فقط اتصالات مستقیم بدون نقشهبرداری اضافی مجاز هستند.
وضعیت و اجرا:
وضعیت اولیه : خوب
وضعیت : قانون با موفقیت از فروشگاه تجزیه شد.
وضعیت اجرا : غیرقابل اجرا
منبع فروشگاه سیاست : PersistentStore
نوع منبع ذخیره سیاست : محلی
فیلد "وضعیت" تأیید می کند که قانون با موفقیت از ذخیره سیاست تجزیه شده است، که نشان می دهد هیچ مشکلی در پیکربندی وجود ندارد. "EnforcementStatus" با علامت "NotApplicable" نشان می دهد که هیچ محدودیتی وجود ندارد که مانع از اجرای این قانون شود.
به یاد داشته باشید، برای راه اندازی یک اتصال SSH به یک جفت کلید SSH نیاز داریم - یک کلید عمومی و یک کلید خصوصی. حالا ببینیم چگونه این کار را انجام دهیم.
نحوه تولید کلیدهای SSH
ترمینال ویندوز یا PowerShell خود را باز کنید.
دستور ssh-keygen
را برای ایجاد یک جفت کلید SSH جدید اجرا کنید.
برای تعیین مکان ذخیره و عبارت عبور (اختیاری) برای کلیدهای خود، دستورات را دنبال کنید.
در صورت موفقیت آنچه را که در تصویر بالا می بینید به دست خواهید آورد.
کلید عمومی به عنوان id_
rsa.pub
در دایرکتوری .ssh
پوشه اصلی کاربر شما ذخیره می شود (به عنوان مثال، C:\Users\you\.ssh\id_
rsa.pub
).
چگونه کلید عمومی را به GitHub اضافه کنیم
وارد حساب GitHub خود شوید و به تنظیمات حساب خود بروید.
به بخش "کلیدهای SSH و GPG" بروید.
بر روی دکمه "کلید SSH جدید" کلیک کنید. به کلید خود یک عنوان توصیفی بدهید و سپس محتویات فایل id_
rsa.pub
(کلید عمومی خود) را در قسمت "Key" کپی کنید.
برای ذخیره کلید جدید روی « گفت ن کلید SSH» کلیک کنید.
تست اتصال SSH
در ترمینال ویندوز یا PowerShell خود، دستور زیر را برای آزمایش اتصال SSH خود به GitHub اجرا کنید:
bashCopy codessh -T git@github.com
اگر از شما خواسته شد، اگر در طول فرآیند تولید کلید، عبارت عبور خود را تنظیم کردید، وارد کنید. اگر یک عبارت عبور تنظیم نکردهاید، به سادگی «بله» را تایپ کنید وقتی از شما خواسته شد که به دست دادن پاسخ دهید.
اگر اتصال موفقیت آمیز باشد، باید پیامی مانند "نام کاربری سلام! شما با موفقیت احراز هویت کردید، اما GitHub دسترسی پوسته را فراهم نمی کند" را مشاهده کنید.
شما می توانید با دنبال کردن روند اینجا این مشکل را حل کنید.
شبیه سازی یک مخزن با استفاده از SSH
به یکی از مخازن GitHub خود بروید و URL کلون SSH را کپی کنید، که معمولاً با git@github.com
شروع می شود:
در ترمینال محلی خود، دستور git clone
git@github.com
:username/repository.git
را اجرا کنید تا مخزن را با استفاده از پروتکل SSH کلون کنید.
نتیجه گیری
اکنون SSH دارید که بین رایانه ویندوز و حساب GitHub شما کار می کند. این بدان معنی است که می توانید با پروژه های GitHub خود راحت تر و ایمن تر کار کنید.
چرا SSH جالب است:
فوق العاده امن است SSH دادههای شما را به هم میریزد تا دیگران نتوانند آنها را ردیابی کنند.
راحت است. دیگر نیازی به تایپ رمزهای عبور دائمی نیست!
این قابل انعطاف است. شما می توانید از آن برای مواردی بیش از GitHub استفاده کنید.
شما می توانید برای پروژه های مختلف "کلید" های مختلفی داشته باشید.
با ابزارهای کدنویسی خودکار به خوبی کار می کند.
اما کامل نیست:
ردیابی بسیاری از کلیدهای SSH می تواند یک سردرد باشد.
اگر شخصی کلید خصوصی شما را دریافت کند، می تواند به موارد شما دسترسی داشته باشد.
تنظیم آن برای اولین بار ممکن است مشکل باشد.
برای ایمنی بیشتر باید به یاد داشته باشید که کلیدهای خود را خودتان تعویض کنید.
برخی از شبکه ها ممکن است SSH را مسدود کنند، که می تواند آزار دهنده باشد.
به یاد داشته باشید که کلید SSH خصوصی خود را ایمن نگه دارید. این مانند یک رمز عبور خاص برای حساب GitHub شما است، پس به خوبی از آن محافظت کنید.
حتی با وجود این معایب کوچک، SSH هنوز برای اکثر کدنویسان عالی است. اکنون شما آماده هستید تا راحت تر و ایمن تر روی پروژه های GitHub خود کار کنید. از تنظیمات کدنویسی بهبودیافته خود لذت ببرید و به یادگیری روشهای ایمن نگه داشتن کار خود ادامه دهید.
ارسال نظر