Serwer Git obsługuje repozytorium projektu, które zawiera kod źródłowy i inne podstawowe pliki. Chociaż w większości przypadków możesz polegać na znanych na całym świecie usługach hostingowych Git, takich jak GitHub, w niektórych przypadkach przypadkach lepiej jest hostować swój osobisty serwer Git, aby zwiększyć prywatność, możliwość dostosowania i bezpieczeństwo.
Dowiedzmy się, jak skonfigurować prywatny serwer Git w systemie Linux.
Wymagania wstępne do skonfigurowania serwera Git
Zanim zaczniesz konfigurować swój prywatny serwer Git, musisz mieć dostęp do zapasowej maszyny lub subskrybować dostawców chmury. Jest to ważne, ponieważ skonfigurujesz maszynę zapasową tak, aby działała jako serwer Git, z którym będziesz łączyć się z komputera lokalnego i wykonywać operacje Git.
Chociaż nie ma dobrze zdefiniowanych wymagań systemowych, jeden gigabajt pamięci RAM powinien wystarczyć do działania serwera Git. Ponadto upewnij się, że masz uruchomioną dystrybucję Linuksa na komputerze.
Krok 1: Pobierz i zainstaluj Git na serwerze Linux
Nie trzeba dodawać, że musisz mieć zainstalowany Git na serwerze Linux jako wstępny krok. Uruchom terminal i użyj menedżera pakietów swojej dystrybucji Linuksa, aby zainstalować Git:
Na pochodnych Debiana/Ubuntu:
sudo apt zainstalować git
Na Dystrybucje oparte na Arch:
sudo pacman -S git
Na CentOS/RHEL/Fedorze:
sudo dnf zainstalować git
Po zainstalowaniu Git w systemie przejdź do kolejnych kroków, aby skonfigurować system Linux do obsługi repozytoriów Git jako serwera Git.
Krok 2: Skonfiguruj konto użytkownika Git
Połącz się z serwerem Linux przez SSH, RDP lub dowolny inny protokół dostępu zdalnego. Lub, jeśli używasz zapasowego komputera jako serwera, włącz go i utwórz nowe konto użytkownika do obsługi repozytoriów.
nazwa użytkownika ssh@adres zamieszkania
sudo useradd git
Po dodaniu nowego użytkownika przełącz się na niego za pomocą su Komenda:
su git
Tworzenie dedykowanego git konto użytkownika to protokół bezpieczeństwa, który zapewnia klientom łączącym się z serwerem Git ograniczoną widoczność i dostęp do zasobów na komputerze. Pozwala to na bezpieczną współpracę w projektach grupowych, w których wielu członków zespołu będzie miało dostęp do Twojego serwera.
Krok 3: Utwórz katalog .ssh i dodaj autoryzowane klucze
Tworząc .ssh katalog jest niezbędny do przechowywania kluczy publicznych i innych istotnych danych, które będą decydować o tym, kto ma dostęp do tego serwera Git. Na początek zaloguj się na utworzone wcześniej konto użytkownika git, utwórz katalog .ssh i ogranicz dostęp tylko do użytkownika git:
ssh git@adres zamieszkania
mkdir.ssh
chmod 700 .ssh/
dotknij .ssh/authorized_keys
Zabezpiecz uprawnienia dostępu do katalogu za pomocą chmod polecenie, aby upewnić się, że nikt oprócz Ciebie nie może wprowadzać w nim zmian. Przenieś się do .ssh katalogu i utwórz nowy plik "authorized_keys" za pomocą dotykać Komenda.
płyta CD.ssh
ssh-keygen -t rsa #uruchom to polecenie tylko wtedy, gdy NIE masz pliku id_rsa.pub
kotid_rsa.pub
Będziesz musiał zaktualizować ten plik o publiczne klucze SSH klientów, którym chcesz przyznać dostęp do serwera Git. Zawieś sesję SSH i otwórz .ssh/id_rsa.pub plik na komputerze lokalnym za pomocą edytora tekstu lub komenda kota. Ten plik zawiera Twój zaszyfrowany klucz publiczny, który po zapisaniu w pliku Author_keys zapewni Ci dostęp do serwera Git bez hasła.
płyta CD.ssh
vi autoryzowane_klucze
Skopiuj klucz publiczny i uruchom nowe połączenie SSH z serwerem Git. Przenieś się do .ssh katalogu, otwórz plik autoryzowane_klucze za pomocą edytora tekstu i wklej klucz publiczny. Zapisz zmiany i wyjdź.
Od tego momentu powinieneś być w stanie połączyć się z serwerem bez hasła. Powtórz ten krok dla każdego komputera, który będzie łączył się z serwerem.
Krok 4: Utwórz katalog, aby przechowywać wszystkie swoje repozytoria
Uzyskaj dostęp do serwera Linux i utwórz katalog lub użyj wbudowanego jako katalogu głównego. Pamiętaj, że jest to katalog, w którym będą przechowywane wszystkie twoje repozytoria. To dobra praktyka ze względu na ładniejszą organizację projektów.
mkdir nazwa_katalogu
Po utworzeniu katalogu przejdź do ostatniego kroku tego przewodnika, aby zakończyć konfigurację serwera Git.
Krok 5: Rozpocznij rozwój, dodając nowy projekt
Konfiguracja serwera Git została już praktycznie zakończona. Teraz wystarczy rozpocząć programowanie, inicjując repozytoria i dodając zdalne źródło do lokalnego komputera. Przejdź do katalogu nadrzędnego za pomocą płyta CD polecenie i utwórz a .git katalog projektów:
płyta CD nadrzędna Lokalizacja
mkdirnowy projekt.git
Teraz zainicjuj repozytorium gołe git:
git init --odsłonić
Po zainicjowaniu repozytorium nadszedł czas, aby dodać zdalne źródło na komputerze lokalnym:
git remote dodaj nazwę pochodzenia git@adres zamieszkania:nowy_projekt.git
To wszystko, co musisz zrobić po stronie serwera. Teraz każdy uwierzytelniony klient może wykonywać zwykłe operacje Git, takie jak wypychanie, ściąganie, scalanie, klonowanie i inne. Aby rozpocząć nowe projekty, będziesz musiał powtórzyć ten krok za każdym razem, gdy tworzysz nowy projekt.
Przetestuj jego funkcjonalność, wykonując git push:
dotknij pliku testowego
git dodaj plik testowy
git commit -m "plik testowy"
git push nazwa mistrza
git klon git@adres: nowy_projekt.git
Twój plik zostanie pomyślnie przekazany do zdalnego źródła. Aby sprawdzić, czy operacja wypychania zadziałała, możesz sklonować repozytorium i znaleźć plik testowy w repozytorium.
Wskazówki dotyczące bezpieczeństwa Twojego serwera Git
Gdy serwer Git jest już uruchomiony, musisz zwracać szczególną uwagę na jego stan bezpieczeństwa, ponieważ jest Twój osobisty serwer i Twoim wyłącznym obowiązkiem jest jego utrzymanie i ochrona przed zewnętrznymi zagrożenia. Oto niektóre z najlepszych praktyk w zakresie bezpieczeństwa:
- Wyłącz logowanie hasłem
- Zmień domyślną powłokę na git-shell. Ogranicza to zalogowanemu użytkownikowi możliwość wydawania jakichkolwiek poleceń innych niż git
- Użyj niestandardowego portu dla SSH
- Wyłącz logowanie użytkownika root
- Regularnie twórz kopie zapasowe danych
Istnieje wiele takich konfiguracji zabezpieczeń i środków bezpieczeństwa, które można wdrożyć na serwerze z systemem Linux, aby chronić go przed atakami i uniemożliwić nieautoryzowany dostęp.