En Git-server er vært for et projekts repository, som indeholder kildekoden og andre kernefiler. Mens du for det meste kan stole på globalt kendte Git-hostingtjenester som GitHub, i nogle tilfælde, er det bedre at være vært for din personlige Git-server for ekstra privatliv, tilpasningsmuligheder og sikkerhed.

Lad os lære, hvordan du kan konfigurere en privat Git-server på Linux.

Forudsætninger for at opsætte en Git-server

Før du begynder at konfigurere din private Git-server, skal du have adgang til en ekstra maskine eller abonnere på cloud-udbydere. Dette er vigtigt, da du vil sætte reservemaskinen op til at fungere som en Git-server, som du vil oprette forbindelse til fra din lokale maskine og udføre Git-operationer.

Selvom der ikke er nogen veldefinerede systemkrav, burde en gigabyte RAM være nok til, at Git-serveren kan fungere. Sørg desuden for at have en Linux-distribution oppe og køre på maskinen.

Trin 1: Download og installer Git på Linux-serveren

Det er overflødigt at sige, at du skal have Git installeret på din Linux-server som et indledende trin. Tænd en terminal og brug pakkehåndteringen af ​​din Linux-distribution til at installere Git:

instagram viewer

Om Debian/Ubuntu-derivater:

sudo apt installere git

Arch-baserede distributioner:

sudo pacman -S git

På CentOS/RHEL/Fedora:

sudo dnf installere git

Når Git er installeret på dit system, skal du fortsætte til de næste trin for at konfigurere dit Linux-system til at være vært for dine Git-depoter som en Git-server.

Trin 2: Opret en Git-brugerkonto

Opret forbindelse til din Linux-server via SSH, RDP eller enhver anden fjernadgangsprotokol. Eller, hvis du bruger en ekstra computer som server, skal du tænde for den og oprette en ny brugerkonto til at håndtere dine lagre.

ssh brugernavn@adresse
sudo useradd git

Når den nye bruger er tilføjet, skal du skifte til den ved hjælp af su kommando:

su git

Oprettelse af en dedikeret git brugerkonto er en sikkerhedsprotokol, der sikrer, at klienter, der forbinder til din Git-server, har begrænset synlighed og adgang til ressourcerne på maskinen. Dette giver dig mulighed for sikkert at samarbejde i gruppeprojekter, hvor flere teammedlemmer vil få adgang til din server.

Trin 3: Opret .ssh-kataloget og tilføj autoriserede nøgler

Oprettelse af en .ssh mappe er nødvendig for at gemme offentlige nøgler og andre vigtige data, der vil diktere, hvem der får adgang til denne Git-server. Til at begynde med skal du logge ind på den git-brugerkonto, du oprettede tidligere, oprette .ssh-mappen og begrænse adgangen til kun git-brugeren:

ssh git@adresse
mkdir.ssh
chmod 700 .ssh/
tryk på .ssh/authorized_keys

Sikre mappeadgangstilladelserne ved hjælp af chmod kommando for at sikre, at ingen undtagen dig kan foretage ændringer i den. Flyt ind i .ssh mappe og opret en ny fil "authorized_keys" ved hjælp af røre ved kommando.

cd.ssh
ssh-keygen -t rsa #kør kun denne kommando, hvis du IKKE har en id_rsa.pub-fil
katid_rsa.pub

Du bliver nødt til at opdatere denne fil med de offentlige SSH-nøgler for klienter, som du vil give adgang til Git-serveren. Suspendér SSH-sessionen og åbn .ssh/id_rsa.pub fil på din lokale maskine ved hjælp af en teksteditor eller kattekommandoen. Denne fil indeholder din offentlige krypterede nøgle, som, når den er skrevet ind i filen authorized_keys, vil give dig adgang til Git-serveren uden en adgangskode.

cd.ssh
vi autoriserede_nøgler

Kopier den offentlige nøgle og opret en frisk SSH-forbindelse til Git-serveren. Flyt ind i .ssh mappe, åbn filen authorized_keys med en teksteditor og indsæt den offentlige nøgle. Gem ændringer og afslut.

Fra da af skulle du være i stand til at oprette forbindelse til serveren uden adgangskode. Gentag dette trin for hver maskine, der skal oprette forbindelse til serveren.

Trin 4: Opret en mappe til at gemme alle dine depoter

Få adgang til Linux-serveren og opret en mappe eller brug en indbygget som rodmappen. Husk, at dette er den mappe, hvorunder alle dine depoter vil blive gemt. Dette er en god praksis af hensyn til en pænere organisering af projekter.

mkdir mappenavn

Når du har oprettet mappen, skal du gå videre til det sidste trin i denne guide for at afslutte opsætningen af ​​Git-serveren.

Trin 5: Start udviklingen ved at tilføje et nyt projekt

Du er nu praktisk talt færdig med at opsætte Git-serveren. Nu mangler du bare at sætte gang i udviklingen ved at initialisere repositories og tilføje den eksterne oprindelse til din lokale maskine. Flyt ind i den overordnede mappe ved hjælp af cd kommando og opret en .git projektmappe:

cd parent_directory
mkdirnyt projekt.git

Initialiser nu et bare git-lager:

git init --bar

Med depotet initialiseret, er det tid til at tilføje den eksterne oprindelse på din lokale maskine:

git fjernbetjening tilføj oprindelsesnavn git@adresse:nyt_projekt.git

Det er alt, hvad du skulle gøre på serversiden af ​​tingene. Nu kan enhver autentificeret klient udføre almindelige Git-operationer som push, pull, merge, clone og mere. For at starte nye projekter skal du gentage dette trin hver gang du opretter et nyt projekt.

Test dens funktionalitet ved at udføre et git-push:

tryk på testfil
git add testfil
git begå -m "testfil"
git push navn master
git klon git@adresse: new_project.git

Din fil vil blive sendt til den eksterne oprindelse. For at krydstjekke om push-operationen virkede, kan du klone depotet, og du bør finde testfilen i depotet.

Sikkerhedstips til din Git-server

Med Git-serveren oppe at køre, skal du være meget opmærksom på dens sikkerhedsstatus, som den er din personlige server, og det er dit eget ansvar at vedligeholde og beskytte den mod eksterne trusler. Nogle af de bedste sikkerhedspraksis, der skal anvendes, er:

  • Deaktiver adgangskode-login
  • Skift standard shell til git-shell. Dette begrænser den loggede bruger i at udstede en ikke-git-kommando
  • Brug en brugerdefineret port til SSH
  • Deaktiver root bruger login
  • Sikkerhedskopier data regelmæssigt

Der er mange sådanne sikkerhedskonfigurationer og sikkerhedsforanstaltninger, som du kan implementere på din Linux-server for at beskytte den mod angribere og forhindre uautoriseret adgang.