SSH چیست و چرا به آن نیاز داریم؟

مفهوم کلید SSH، تفاوت اتصال HTTPS و SSH به گیت‌هاب و اینکه چرا SSH روش امن‌تر و راحت‌تری است.

مشکل: احراز هویت در هر push

وقتی می‌خواهید کدتان را به گیت‌هاب بفرستید (push)، گیت‌هاب باید مطمئن شود واقعاً شما هستید. دو راه اصلی برای این کار وجود دارد: HTTPS و SSH.

HTTPS — روش پیش‌فرض

آدرس مخزن به شکل https://github.com/user/repo.git است. هر بار push یا pull:

SSH — روش حرفه‌ای

آدرس مخزن به شکل git@github.com:user/repo.git است. با کلید SSH کار می‌کند:

کلید SSH چطور کار می‌کند؟

SSH از جفت کلید استفاده می‌کند:

کلیدکجاست؟نقش
خصوصی (Private)روی کامپیوتر شما — مخفی بماند! 🔒هویت شما را اثبات می‌کند
عمومی (Public)به گیت‌هاب می‌دهید — آزاد استقفلِ باز کردن هویت شما

تشبیه معروف: کلید عمومی مثل قفل است و کلید خصوصی مثل کلید واقعی. هر کسی می‌تواند قفل را ببیند، اما فقط شما کلید باز کردنش را دارید. گیت‌هاب با قفل (کلید عمومی) پیام رمزی می‌فرستد که فقط کلید شما می‌تواند جوابش را بدهد — بدون اینکه هیچ رمزی رد و بدل شود!

مقایسه HTTPS و SSH

ویژگیHTTPSSSH
راه‌اندازیسریع (از اول هست)یک بار تنظیم لازم دارد
احراز هویتتوکن در هر عملیات (کش می‌شود)خودکار و بی‌دردسر ⭐
امنیتخوبعالی ⭐
پشت فایروال/پروکسیمعمولاً بدون مشکل ⭐گاهی پورت ۲۲ بسته است
برای چه کسانی؟شروع سریع، محیط‌های محدودکار روزمره و حرفه‌ای ⭐

SSH فقط برای گیت نیست!

SSH (Secure Shell) یک پروتکل عمومی برای اتصال امن به سرورهاست — مدیران سرور با آن به سرورهای لینوکسی وصل می‌شوند. ما فقط از قابلیت احراز هویت با کلید آن برای گیت‌هاب استفاده می‌کنیم.

نقشه راه راه‌اندازی SSH

  1. بررسی کلیدهای موجود — شاید از قبل داشته باشید
  2. ساخت جفت کلید جدید با ssh-keygen
  3. افزودن کلید عمومی به گیت‌هاب
  4. تست اتصال

این مراحل را در مبحث بعدی قدم‌به‌قدم انجام می‌دهیم!

خلاصه

این مبحث بخشی از دوره آموزش کامل Git است.

ابزارهای مرتبط