Een Git-server host de repository van een project, die de broncode en andere kernbestanden bevat. Terwijl u voor het grootste deel kunt vertrouwen op wereldwijd bekende Git-hostingservices zoals GitHub, in sommige gevallen is het beter om uw persoonlijke Git-server te hosten voor extra privacy, aanpasbaarheid en veiligheid.
Laten we eens kijken hoe je een privé Git-server op Linux kunt opzetten.
Vereisten voor het opzetten van een Git-server
Voordat u begint met het opzetten van uw privé Git-server, moet u toegang hebben tot een reservemachine of moet u zijn geabonneerd op cloudproviders. Dit is belangrijk omdat je de reservemachine instelt om te fungeren als een Git-server waarmee je verbinding maakt vanaf je lokale machine en Git-bewerkingen uitvoert.
Hoewel er geen goed gedefinieerde systeemvereisten zijn, zou één gigabyte RAM voldoende moeten zijn om de Git-server functioneel te maken. Zorg er verder voor dat je een Linux-distributie op de machine hebt staan.
Stap 1: Download en installeer Git op de Linux-server
Onnodig te zeggen dat je Git als voorbereidende stap op je Linux-server moet hebben geïnstalleerd. Start een terminal op en gebruik de pakketbeheerder van je Linux-distributie om Git te installeren:
Over Debian/Ubuntu-derivaten:
sudo apt installeren git
Op Arch-gebaseerde distributies:
sudo pacman -S git
Op CentOS/RHEL/Fedora:
sudo dnf installeren git
Zodra Git op uw systeem is geïnstalleerd, gaat u verder met de volgende stappen om uw Linux-systeem te configureren om uw Git-opslagplaatsen als een Git-server te hosten.
Stap 2: Stel een Git-gebruikersaccount in
Maak verbinding met je Linux-server via SSH, RDP of een ander protocol voor externe toegang. Of, als u een reservecomputer als server gebruikt, schakelt u deze in en maakt u een nieuwe gebruikersaccount aan om uw repositories te beheren.
ssh gebruikersnaam@adres
sudo useradd git
Nadat de nieuwe gebruiker is toegevoegd, schakelt u ernaar met de zo opdracht:
su git
Een speciale. maken git gebruikersaccount is een veiligheidsprotocol dat ervoor zorgt dat clients die verbinding maken met uw Git-server beperkte zichtbaarheid en toegang hebben tot de bronnen op de machine. Hierdoor kunt u veilig samenwerken in groepsprojecten waarbij meerdere teamleden toegang hebben tot uw server.
Stap 3: Maak de .ssh-directory en voeg geautoriseerde sleutels toe
Een maken .ssh directory is nodig om openbare sleutels en andere essentiële gegevens op te slaan die bepalen wie toegang krijgt tot deze Git-server. Log om te beginnen in op het git-gebruikersaccount dat je eerder hebt gemaakt, maak de .ssh-map aan en beperk de toegang tot alleen de git-gebruiker:
ssh git@adres
mkdir.ssh
chmod 700 .ssh/
tik op .ssh/authorized_keys
Beveilig de toegangsrechten voor de directory met behulp van de chmod commando om ervoor te zorgen dat niemand behalve u er wijzigingen in kan aanbrengen. Ga naar de .ssh directory en maak een nieuw bestand "authorized_keys" aan met de aanraken opdracht.
CD.ssh
ssh-keygen -t rsa #voer deze opdracht alleen uit als je GEEN id_rsa.pub-bestand hebt
katid_rsa.kroeg
Je zult dit bestand moeten bijwerken met de openbare SSH-sleutels van clients aan wie je toegang wilt geven tot de Git-server. Onderbreek de SSH-sessie en open de .ssh/id_rsa.pub bestand op uw lokale computer met behulp van een teksteditor of het kattencommando. Dit bestand bevat uw openbare versleutelde sleutel, die, wanneer deze in het bestand Authorized_keys wordt geschreven, u zonder wachtwoord toegang geeft tot de Git-server.
CD.ssh
vi geautoriseerde_sleutels
Kopieer de openbare sleutel en start een nieuwe SSH-verbinding met de Git-server. Ga naar de .ssh directory, open het bestand Authorized_keys met een teksteditor en plak de openbare sleutel. Bewaar aanpassingen en sluit.
Vanaf dat moment zou u zonder wachtwoord verbinding moeten kunnen maken met de server. Herhaal deze stap voor elke machine die verbinding gaat maken met de server.
Stap 4: Maak een directory om al uw repositories op te slaan
Ga naar de Linux-server en maak een directory aan of gebruik een ingebouwde directory als rootdirectory. Houd er rekening mee dat dit de map is waaronder al uw repositories worden opgeslagen. Dit is een goede gewoonte om projecten netter te organiseren.
mkdir directorynaam
Ga na het maken van de directory verder met de laatste stap in deze handleiding om het instellen van de Git-server te voltooien.
Stap 5: Start ontwikkeling door een nieuw project toe te voegen
Je bent nu praktisch klaar met het instellen van de Git-server. Nu hoeft u alleen nog maar de ontwikkeling te starten door repositories te initialiseren en de externe oorsprong toe te voegen aan uw lokale machine. Ga naar de bovenliggende map met behulp van de CD commando en maak een .git projectmap:
CD bovenliggende_directory
mkdirnieuw project.git
Initialiseer nu een kale git-repository:
git init --bare
Nu de repository is geïnitialiseerd, is het tijd om de externe oorsprong op uw lokale computer toe te voegen:
git remote voeg oorsprongsnaam toe git@adres:nieuw_project.git
Dat is alles wat je aan de serverkant hoefde te doen. Nu kan elke geverifieerde client reguliere Git-bewerkingen uitvoeren, zoals push, pull, merge, clone en meer. Om nieuwe projecten te starten, moet u deze stap telkens herhalen wanneer u een nieuw project aanmaakt.
Test de functionaliteit door een git push uit te voeren:
touch testbestand
git testbestand toevoegen
git commit -m "testbestand"
git push naam master
git klonen git@address: new_project.git
Uw bestand wordt met succes naar de externe oorsprong gepusht. Om te controleren of de push-bewerking werkte, kunt u de repository klonen en moet u het testbestand in de repository vinden.
Beveiligingstips voor uw Git-server
Nu de Git-server in gebruik is, moet je goed letten op de beveiligingsstatus zoals die is uw persoonlijke server en het is uw eigen verantwoordelijkheid om deze te onderhouden en te beschermen tegen externe gevaren. Enkele van de beste beveiligingspraktijken die u kunt toepassen, zijn:
- Wachtwoordaanmelding uitschakelen
- Verander de standaard shell in git-shell. Dit verhindert dat de ingelogde gebruiker een niet-git-commando geeft
- Gebruik een aangepaste poort voor SSH
- Aanmelding rootgebruiker uitschakelen
- Maak regelmatig een back-up van gegevens
Er zijn veel van dergelijke beveiligingsconfiguraties en veiligheidsmaatregelen die u op uw Linux-server kunt implementeren om deze tegen aanvallers te beschermen en ongeautoriseerde toegang te voorkomen.