Git یک سیستم کنترل نسخه Open-surce است که توسط توسعه دهندگان در سراسر جهان استفاده می شود. در این مقاله نحوه ایجاد سرور Git خصوصی در لینوکس برای میزبانی پروژه های خود به طور کامل توضیح داده شده است.
سرور Git میزبان مخزن یک پروژه است که حاوی کد منبع و سایر فایل های اصلی است. در حالی که، در بیشتر موارد، میتوانید به سرویسهای میزبانی جهانی Git مانند GitHub تکیه کنید، در برخی موارد، برای حفظ حریم خصوصی، شخصیسازی و امنیت بیشتر، بهتر است سرور Git شخصی خود را میزبانی کنید.
بیایید بیاموزیم که چگونه می توانید یک سرور Git خصوصی در لینوکس راه اندازی کنید.
پیش نیازهای راه اندازی سرور Git
قبل از شروع به راه اندازی سرور Git خصوصی خود، باید به یک ماشین یدکی دسترسی داشته باشید یا باید مشترک ارائه دهندگان Cloud باشید. این مهم است زیرا شما دستگاه یدکی را طوری تنظیم می کنید که به عنوان یک سرور Git عمل کند که از دستگاه محلی خود به آن متصل می شوید و عملیات Git را انجام می دهید.
در حالی که هیچ سیستم مورد نیاز کاملاً تعریف شده ای وجود ندارد، یک گیگابایت RAM باید برای عملکرد سرور Git کافی باشد. علاوه بر این، مطمئن شوید که یک توزیع لینوکس در دستگاه دارید و در حال اجرا است.
مرحله 1: دانلود و نصب Git بر روی سرور لینوکس


نیازی به گفتن نیست که به عنوان مرحله مقد ماتی باید Git را روی سرور لینوکس خود نصب کنید. یک ترمینال را راه اندازی کنید و از مدیر بسته توزیع لینوکس خود برای نصب Git استفاده کنید:
در مورد مشتقات Debian/Ubuntu:
sudo apt install git
در توزیع های مبتنی بر Arch:
sudo pacman -S git
در CentOS/RHEL/Fedora:
sudo dnf install git
پس از نصب Git بر روی سیستم شما، مراحل بعدی را برای پیکربندی سیستم لینوکس خود برای میزبانی مخازن Git به عنوان یک سرور Git ادامه دهید.
مرحله 2: یک حساب کاربری Git راه اندازی کنید


از طریق SSH، RDP یا هر پروتکل دسترسی از راه دور دیگر به سرور لینوکس خود متصل شوید. یا اگر از یک کامپیوتر یدکی به عنوان سرور استفاده می کنید، آن را روشن کنید و یک حساب کاربری جدید برای مدیریت مخازن خود ایجاد کنید.
ssh username
sudo useradd git
پس از اضافه شدن کاربر جدید، با استفاده از دستور su به آن سوئیچ کنید:
su git
ایجاد یک حساب کاربری اختصاصی Git یک پروتکل ایمنی است که تضمین میکند کلاینت هایی که به سرور Git شما متصل میشوند، دید و دسترسی محدودی به منابع روی دستگاه دارند. این به شما امکان می دهد با خیال راحت در پروژه های گروهی که در آن چندین عضو تیم به سرور شما دسترسی دارند، همکاری کنید.
مرحله 3:.ssh Directory را ایجاد کنید و کلیدهای مجاز را اضافه کنید


ایجاد یک .ssh Directory برای ذخیره کلیدهای عمومی و سایر داده های ضروری، ضروری است که تعیین می کند چه کسی به این سرور Git دسترسی داشته باشد. برای شروع، وارد حساب کاربری Git که قبلا ایجاد کردهاید، .ssh Directory را ایجاد کنید و دسترسی را فقط به کاربر Git محدود کنید:
ssh git
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
مجوزهای دسترسی دایرکتوری را با استفاده از دستور chmod ایمن کنید تا مطمئن شوید که هیچ کس به جز شما نمی تواند در آن تغییرات ایجاد کند. به .ssh Directory بروید و با استفاده از فرمان Touch یک فایل جدید “authorized_keys” ایجاد کنید.
cd .ssh
ssh-keygen -t rsa #only run this command if you DO NOT have an id_rsa.pub file
cat id_rsa.pub
شما باید این فایل را با کلیدهای عمومی SSH کلاینت هایی که می خواهید به آنها دسترسی به سرور Git بدهید، به روز کنید. جلسه SSH را به حالت تعلیق درآورید و فایل .ssh/id_rsa.pub را در دستگاه محلی خود با استفاده از ویرایشگر متن یا دستور cat باز کنید. این فایل حاوی کلید رمزگذاری شده عمومی شماست که وقتی در فایل authorized_keys نوشته شود، بدون رمز عبور به سرور Git دسترسی خواهید داشت.
cd .ssh
vi authorized_keys
کلید عمومی را کپی کنید و یک اتصال SSH جدید را به سرور Git بچرخانید. به .ssh Directory بروید، فایل authorized_keys را با یک ویرایشگر متن باز کنید و کلید عمومی را جایگذاری کنید. تغییرات را ذخیره کرده و خارج شوید.
از آن به بعد، باید بتوانید بدون هیچ رمز عبوری به سرور متصل شوید. این مرحله را برای هر دستگاهی که به سرور متصل می شود تکرار کنید.
مرحله 4: یک Directory برای ذخیره تمام مخازن خود ایجاد کنید
به سرور لینوکس دسترسی پیدا کنید و یک Directory ایجاد کنید یا از یک دایرکتوری داخلی به عنوان Directory ریشه استفاده کنید. به خاطر داشته باشید که این Directory است که تمام مخازن شما در آن ذخیره می شوند. این یک روش خوب برای سازماندهی دقیق پروژه ها است.
mkdir directory_name
پس از ایجاد دایرکتوری، به مرحله نهایی در این راهنما بروید تا راه اندازی سرور Git را به پایان برسانید.
مرحله 5: با افزودن یک پروژه جدید، توسعه را آغاز کنید
اکنون عملاً کار با راه اندازی سرور Git تمام شده است. اکنون فقط باید توسعه را با مقداردهی اولیه مخازن و اضافه کردن منبع راه دور به ماشین محلی خود آغاز کنید. با استفاده از دستور cd به Directory والد بروید و یک Directory پروژه .Git ایجاد کنید:
cd parent_directory
mkdir new_project.git
اکنون، یک مخزن گیت خالی را مقداردهی اولیه کنید:
git init --bare
هنگامی که مخزن مقدار دهی اولیه شده است، وقت آن است که مبدا راه دور را در ماشین محلی خود اضافه کنید:
git remote add origin name git@address:new_project.git
این تنها کاری است که باید در سمت سرور انجام دهید. اکنون هر کلاینت احراز هویت شده می تواند عملیات منظم Git مانند فشار، کشیدن، ادغام، شبیه سازی و غیره را انجام دهد. برای شروع پروژه های جدید باید هر بار که یک پروژه جدید ایجاد می کنید این مرحله را تکرار کنید.
عملکرد آن را با انجام یک فشار git آزمایش کنید:
touch testfile
git add testfile
git commit -m “test file“
git push name master
git clone git@address:new_project.git
فایل شما با موفقیت به منبع راه دور منتقل می شود. برای بررسی متقاطع انجام عملیات فشار، می توانید مخزن را شبیه سازی کنید و باید فایل آزمایشی را در مخزن پیدا کنید.
نکات امنیتی برای سرور Git شما
با راهاندازی سرور Git، باید به سطح امنیتی آن توجه زیادی داشته باشید، زیرا سرور شخصی شماست و حفظ و محافظت از آن در برابر تهدیدات خارجی تنها مسئولیت شماست. برخی از بهترین شیوه های امنیتی برای اتخاذ عبارتند از:
- غیرفعال کردن ورود رمز عبور
- پوسته پیش فرض را به git-shell تغییر دهید. این کار کاربر وارد شده را از صدور هر دستور غیر git محدود می کند
- از یک پورت سفارشی برای SSH استفاده کنید
- غیرفعال کردن ورود کاربر root
- به طور منظم از داده ها نسخه پشتیبان تهیه کنید
تعداد بسیاری از تنظیمات امنیتی و اقدامات ایمنی وجود دارد که می توانید روی سرور لینوکس خود برای محافظت از آن در برابر مهاجمان و جلوگیری از دسترسی غیرمجاز پیاده سازی کنید.