Bir Git sunucusu, kaynak kodunu ve diğer çekirdek dosyaları içeren bir projenin havuzunu barındırır. Çoğunlukla GitHub gibi dünya çapında bilinen Git barındırma hizmetlerine güvenebilirsiniz, ancak bazı durumlarda daha fazla gizlilik, özelleştirilebilirlik ve güvenlik için kişisel Git sunucunuzu barındırmak daha iyidir.
Linux’ta özel bir Git sunucusunu nasıl kurabileceğinizi öğrenelim.
Git Sunucusu Kurmanın Ön Koşulları
Özel Git sunucunuzu kurmaya başlamadan önce yedek bir makineye erişiminizin olması veya bulut sağlayıcılarına abone olmanız gerekir. Yedek makineyi, yerel makinenizden bağlanacağınız ve Git işlemlerini gerçekleştireceğiniz bir Git sunucusu olarak çalışacak şekilde ayarlayacağınız için bu önemlidir.
İyi tanımlanmış sistem gereksinimleri olmasa da, Git sunucusunun işlevsel olması için bir gigabayt RAM yeterli olmalıdır. Ayrıca, makinede çalışır durumda bir Linux dağıtımına sahip olduğunuzdan emin olun.
Adım 1: Git’i İndirin ve Linux Sunucusuna Kurun
git komut çıktısı
Söylemeye gerek yok, bir ön adım olarak Git’in Linux sunucunuzda kurulu olması gerekir. Git’i yüklemek için bir terminal çalıştırın ve Linux dağıtımınızın paket yöneticisini kullanın:
Debian/Ubuntu türevlerinde:
sudo apt install git
Arch tabanlı dağıtımlarda :
sudo pacman -S git
CentOS/RHEL/Fedora’da:
sudo dnf install git
Git sisteminize yüklendikten sonra, Linux sisteminizi Git depolarınızı bir Git sunucusu olarak barındıracak şekilde yapılandırmak için sonraki adımlara geçin.
2. Adım: Bir Git Kullanıcı Hesabı Kurun
sunucuya ssh atın ve kullanıcı hesabı oluşturun
Linux sunucunuza SSH , RDP veya başka herhangi bir uzaktan erişim protokolü aracılığıyla bağlanın. Veya sunucu olarak yedek bir bilgisayar kullanıyorsanız, açın ve depolarınızı yönetmek için yeni bir kullanıcı hesabı oluşturun.
ssh username@address
sudo useradd git
Yeni kullanıcı eklendikten sonra su komutunu kullanarak geçiş yapın:
su git
Ayrılmış bir git kullanıcı hesabı oluşturmak, Git sunucunuza bağlanan istemcilerin makinedeki kaynaklara sınırlı görünürlük ve erişime sahip olmasını sağlayan bir güvenlik protokolüdür. Bu, birden fazla ekip üyesinin sunucunuza erişeceği grup projelerinde güvenli bir şekilde işbirliği yapmanızı sağlar.
3. Adım: .ssh Dizinini Oluşturun ve Yetkili Anahtarları Ekleyin
ortak anahtar yetkilendirmesi ekleme
Bir .ssh dizini oluşturmak, bu Git sunucusuna kimin erişeceğini belirleyecek ortak anahtarları ve diğer temel verileri depolamak için gereklidir. Başlamak için, daha önce oluşturduğunuz git kullanıcı hesabına giriş yapın, .ssh dizinini oluşturun ve erişimi yalnızca git kullanıcısıyla sınırlayın:
ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
Sizden başka hiç kimsenin üzerinde değişiklik yapamayacağından emin olmak için chmod komutunu kullanarak dizin erişim izinlerini güvence altına alın. .ssh dizinine gidin ve touch komutunu kullanarak yeni bir “yetkili_anahtarlar” dosyası oluşturun .
cd .ssh
ssh-keygen -t rsa #only run this command if you DO NOT have an id_rsa.pub file
cat id_rsa.pub
Bu dosyayı, Git sunucusuna erişim vermek istediğiniz istemcilerin SSH ortak anahtarlarıyla güncellemeniz gerekecektir. SSH oturumunu askıya alın ve bir metin düzenleyici veya cat komutu kullanarak .ssh/id_rsa.pub dosyasını yerel makinenizde açın . Bu dosya, yetkili_anahtarlar dosyasına yazıldığında Git sunucusuna parola olmadan erişmenizi sağlayacak olan genel şifreli anahtarınızı içerir.
cd .ssh
vi authorized_keys
Genel anahtarı kopyalayın ve Git sunucusuna yeni bir SSH bağlantısı kurun. .ssh dizinine gidin, yetkili_keys dosyasını bir metin düzenleyiciyle açın ve genel anahtarı yapıştırın. Değişiklikleri Kaydet ve Çık.
O andan itibaren, herhangi bir şifre olmadan sunucuya bağlanabilmelisiniz. Sunucuya bağlanacak her makine için bu adımı tekrarlayın.
4. Adım: Tüm Havuzlarınızı Saklamak için Bir Dizin Oluşturun
Linux sunucusuna erişin ve bir dizin oluşturun veya yerleşik bir dizini kök dizin olarak kullanın. Bunun, tüm depolarınızın saklanacağı dizin olduğunu unutmayın. Bu, projelerin daha düzenli bir şekilde organize edilmesi adına iyi bir uygulamadır.
mkdir directory_name
Dizini oluşturduktan sonra, Git sunucusunun kurulumunu tamamlamak için bu kılavuzdaki son adıma geçin.
Adım 5: Yeni Bir Proje Ekleyerek Geliştirmeye Başlayın
Artık Git sunucusunu kurmayı pratik olarak bitirdiniz. Artık depoları başlatarak ve uzak kaynağı yerel makinenize ekleyerek geliştirmeye başlamanız yeterlidir. cd komutunu kullanarak ana dizine geçin ve bir .git proje dizini oluşturun:
cd parent_directory
mkdir new_project.git
Şimdi çıplak bir git deposu başlatın:
git init –bare
Depo başlatıldıktan sonra, uzak kaynağı yerel makinenize eklemenin zamanı geldi:
git remote add origin name git@address:new_project.git
Sunucu tarafında yapmanız gereken tek şey bu. Artık kimliği doğrulanmış herhangi bir istemci, itme, çekme, birleştirme, klonlama ve daha fazlası gibi normal Git işlemlerini gerçekleştirebilir. Yeni projelere başlamak için, her yeni proje oluşturduğunuzda bu adımı tekrarlamanız gerekecektir.
Bir git Push gerçekleştirerek işlevselliğini test edin:
touch testfile
git add testfile
git commit -m “test file”
git push name master
git clone git@address:new_project.git
Dosyanız başarıyla uzak kaynağa gönderilecek. Push işleminin işe yarayıp yaramadığını çapraz kontrol etmek için depoyu klonlayabilirsiniz ve depoda test dosyasını bulmalısınız.
Git Sunucunuz İçin Güvenlik İpuçları
Git sunucusu çalışır durumdayken, kişisel sunucunuz olduğundan ve onu korumak ve dış tehditlerden korumak tamamen sizin sorumluluğunuzda olduğundan, güvenlik durumuna çok dikkat etmelisiniz. Kabul edilecek en iyi güvenlik uygulamalarından bazıları şunlardır:
Şifre girişini devre dışı bırak
Varsayılan kabuğu git-shell olarak değiştirin. Bu, oturum açmış kullanıcının herhangi bir git dışı komut yayınlamasını kısıtlar.
SSH için özel bir bağlantı noktası kullanın
Kök kullanıcı girişini devre dışı bırak
Verileri düzenli olarak yedekleyin
Linux sunucunuzu saldırganlardan korumak ve yetkisiz erişimi önlemek için uygulayabileceğiniz bu tür birçok güvenlik yapılandırması ve güvenlik önlemi vardır.