
چرا باید از SSH برای اتصال Git به سرور ویندوزی استفاده کنیم؟
SSH یا Secure Shell یکی از امنترین روشهای اتصال به سرور است. با استفاده از آن، نیازی به ورود نام کاربری و رمز عبور در هر بار اتصال ندارید و دادهها بین شما و سرور رمزگذاری میشوند. اگر پروژههای شما روی یک سرور ویندوزی قرار دارد، آموزش تنظیم SSH بین ویندوز سرور و Git یک قدم اساسی برای کار تیمی، امنیت و سرعت توسعه است.
- افزایش امنیت ارتباط بین سیستم لوکال و سرور
- جلوگیری از ذخیره رمز در فایلهای Git
- اتصال سریعتر و قابل اعتمادتر
- مدیریت آسان چندین پروژه روی یک سرور ویندوزی
پیشنیازهای برقراری SSH بین Git و ویندوز سرور
قبل از هر چیز باید اطمینان حاصل کنید که سرویس OpenSSH روی ویندوز سرور شما فعال است. نسخههای جدید ویندوز سرور (۲۰۱۹ و بعد از آن) بهصورت پیشفرض از OpenSSH پشتیبانی میکنند.
- نصب یا فعالسازی OpenSSH Server در بخش Optional Features
- تولید کلید SSH در سیستم لوکال با دستور:
ssh-keygen -t rsa -b 4096 - افزودن کلید عمومی به فایل
authorized_keysدر مسیر:
C:\Users\username \.ssh\authorized_keys
پس از انجام مراحل بالا، میتوانید با دستور زیر به سرور متصل شوید:
ssh username@yourserverip

نحوه اتصال Git لوکال به ریپازیتوری ریموت در ویندوز سرور
پس از اطمینان از برقراری ارتباط SSH، نوبت به تعریف مسیر remote repository میرسد.
بسیاری از افراد این مرحله را اشتباه انجام میدهند و Git مسیر را نمیشناسد. برای رفع این مشکل باید مسیر را بهصورت مطلق (absolute path) و در قالب قابل قبول SSH وارد کنید.
فرمت صحیح به شکل زیر است:
git remote add origin ssh://username@yourserverip/
C:/path/to/repo.git
اگر Git مسیر فوق را نپذیرفت، از حالت زیر استفاده کنید:
git remote add origin username@yourserverip
:/C/Repositories/project.git
دقت کنید که در ویندوز مسیرها با اسلش مستقیم `/` جایگزین بکاسلش `\` میشوند. همچنین در بعضی موارد نیاز است در سرور، مسیر Git را با دسترسی کامل برای یوزر SSH مشخص کنید.
نکات مهم در پیکربندی مسیر Remote Repository
- اطمینان از وجود دایرکتوری مقصد و داشتن دسترسی نوشتن
- استفاده از مسیرهای کوتاه و بدون فاصله در نام فولدرها
- تست مسیر با دستور:
ssh username@yourserverip "cd /C/Repositories /project && ls"- در صورت خطای Permission، بررسی مجوز فایلهای SSH و Git
حل خطاهای رایج در اتصال Git و SSH روی ویندوز سرور
یکی از رایجترین خطاها، پیام “repository does not exist” است.
این خطا معمولاً به دلیل اشتباه در مسیر remote یا عدم دسترسی SSH رخ میدهد. برای رفع آن مراحل زیر را بررسی کنید:
- بررسی وجود فولدر git با دستور
ls /C/Repositories - تأیید دسترسی یوزر SSH به مسیر مورد نظر
- اطمینان از اینکه مسیر remote با `/C/` شروع شده باشد، نه `C:`
- در صورت نیاز، با دستور زیر remote را حذف و دوباره اضافه کنید:
git remote remove origin
git remote add origin username@yourserverip :/C/Repositories/project.git

نکاتی برای حفظ امنیت هنگام استفاده از SSH در ویندوز سرور
امنیت در SSH بسیار مهم است. برخی مدیران شبکه از همان کلید روی چند سیستم استفاده میکنند که اشتباه بزرگی است. همیشه کلیدهای مجزا برای هر سیستم تولید کنید و در صورت نیاز از مدیریت کلیدها کمک بگیرید.
- از رمز برای فایل کلید خصوصی استفاده کنید
- دسترسی به پورت SSH (پیشفرض 22) را فقط برای IPهای خاص باز کنید
- از فایروال ویندوز برای محدود کردن دسترسی استفاده کنید
- کلیدهای قدیمی و بلااستفاده را حذف کنید
تجربه شخصی من از تنظیم Git با SSH روی ویندوز سرور
در اولین تجربهام، مسیر remote را با فرمت اشتباه وارد کرده بودم و Git مدام خطا میداد. بعد از بررسی متوجه شدم باید از فرمت /C/ به جای C:/ استفاده کنم. همین نکتهی ساده باعث شد عملیات push بدون خطا انجام شود.
اگر شما هم با چنین مشکلاتی مواجه شدید، ناامید نشوید! تنظیم درست مسیر و مجوزها معمولاً تمام مشکلات را حل میکند.
خدمات شبکه در مشهد
اگر در حال راهاندازی سرور یا تنظیم SSH هستید و به کمک متخصص نیاز دارید، میتوانید از خدمات شبکه در مشهد استفاده کنید. تیمهای فنی میتوانند در تنظیم SSH، Git و پیکربندی امنیتی سرور ویندوزی به شما کمک کنند.
خلاصه نکات مهم مقاله
- SSH بهترین روش برای اتصال امن بین Git و سرور ویندوز است.
- از مسیرهای مطلق و صحیح برای remote repository استفاده کنید.
- در صورت بروز خطا، ابتدا مسیر و سطح دسترسی را بررسی کنید.
- کلیدهای SSH باید منحصر به هر کاربر باشند.
سخن پایانی
در این مقاله یاد گرفتیم چطور با استفاده از SSH به دایرکتوریهای سرور ویندوزی متصل شویم و ریپازیتوری Git را بهدرستی پیکربندی کنیم. اگر از این آموزش استفاده کردید، خوشحال میشوم در بخش نظرات تجربه خود را بنویسید. همچنین مقاله را با دوستان یا همکارانتان به اشتراک بگذارید تا آنها هم از این راهنما بهرهمند شوند.
سوالات متداول (FAQ)
چرا Git مسیر remote ویندوز را نمیشناسد؟
زیرا مسیرها در SSH باید با فرمت یونیکسی (مثل /C/Repository) نوشته شوند نه با بکاسلش ویندوزی.
آیا میتوان چند کلید SSH برای یک سرور استفاده کرد؟
بله، هر کاربر میتواند کلید اختصاصی خود را داشته باشد و همه در فایل authorized_keys ثبت شوند.
چطور خطای “Permission denied” را در SSH رفع کنم؟
این خطا معمولاً به دلیل مجوزهای نادرست فایل authorized_keys یا فولدر .ssh است. مجوزها را بررسی و اصلاح کنید.
آیا SSH روی تمام نسخههای ویندوز سرور کار میکند؟
در نسخههای جدید مانند Windows Server 2019 و 2022 بهصورت پیشفرض پشتیبانی میشود، اما در نسخههای قدیمیتر باید دستی نصب شود.
آیا لازم است برای هر پروژه Git یک مسیر SSH جدا تعریف شود؟
ترجیحاً بله؛ برای نظم بیشتر و جلوگیری از تداخل، برای هر ریپازیتوری یک مسیر اختصاصی تعریف کنید.
اگر به این موضوع علاقهمند بودید، مقالههای دیگر ما درباره مدیریت سرور و تنظیمات شبکه را نیز مطالعه کنید تا دانش فنیتان کاملتر شود.
source: https://www.geekyhacker.com