En Git-server er vert for depotet til et prosjekt, som inneholder kildekoden og andre kjernefiler. Mens du for det meste kan stole på globalt kjente Git-vertstjenester som GitHub, i noen tilfeller er det bedre å være vert for din personlige Git-server for ekstra personvern, tilpasningsmuligheter og sikkerhet.

La oss lære hvordan du kan sette opp en privat Git-server på Linux.

Forutsetninger for å sette opp en Git-server

Før du begynner å sette opp din private Git-server, må du ha tilgang til en ekstra maskin eller bør abonnere på skyleverandører. Dette er viktig siden du setter opp reservemaskinen til å fungere som en Git-server som du kobler deg til fra din lokale maskin og utfører Git-operasjoner.

Selv om det ikke er noen veldefinerte systemkrav, bør én gigabyte RAM være nok for at Git-serveren skal fungere. Sørg dessuten for at du har en Linux-distribusjon oppe og kjører på maskinen.

Trinn 1: Last ned og installer Git på Linux-serveren

Unødvendig å si at du må ha Git installert på Linux-serveren din som et foreløpig trinn. Fyr opp en terminal og bruk pakkebehandlingen til Linux-distribusjonen din for å installere Git:

På Debian/Ubuntu-derivater:

sudo apt installere git

Buebaserte distribusjoner:

sudo pacman -S git

På CentOS/RHEL/Fedora:

sudo dnf installere git

Når Git er installert på systemet ditt, fortsett til neste trinn for å konfigurere Linux-systemet ditt til å være vert for Git-lagrene dine som en Git-server.

Trinn 2: Sett opp en Git-brukerkonto

Koble til Linux-serveren din via SSH, RDP eller en annen ekstern tilgangsprotokoll. Eller, hvis du bruker en ekstra datamaskin som server, slå den på og opprette en ny brukerkonto for å håndtere lagrene dine.

ssh brukernavn@adresse
sudo useradd git

Etter at den nye brukeren er lagt til, bytt til den ved å bruke su kommando:

su git

Opprette en dedikert git brukerkonto er en sikkerhetsprotokoll som sikrer at klienter som kobler til din Git-server vil ha begrenset synlighet og tilgang til ressursene på maskinen. Dette lar deg trygt samarbeide i gruppeprosjekter der flere teammedlemmer vil få tilgang til serveren din.

Trinn 3: Opprett .ssh-katalogen og legg til autoriserte nøkler

Opprette en .ssh katalogen er nødvendig for å lagre offentlige nøkler og andre viktige data som vil diktere hvem som får tilgang til denne Git-serveren. Til å begynne med, logg inn på git-brukerkontoen du opprettet tidligere, opprett .ssh-katalogen og begrense tilgangen til kun git-brukeren:

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

Sikre katalogtilgangstillatelsene ved å bruke chmod kommandoen for å sikre at ingen unntatt deg kan gjøre endringer i den. Flytt inn i .ssh katalogen og opprett en ny fil "authorized_keys" ved hjelp av ta på kommando.

cd.ssh
ssh-keygen -t rsa #kjør kun denne kommandoen hvis du IKKE har en id_rsa.pub-fil
kattid_rsa.pub

Du må oppdatere denne filen med de offentlige SSH-nøklene til klientene du vil gi tilgang til Git-serveren. Stopp SSH-økten og åpne .ssh/id_rsa.pub fil på din lokale maskin ved hjelp av et tekstredigeringsprogram eller kattekommandoen. Denne filen inneholder din offentlige krypterte nøkkel, som, når den skrives inn i filen authorized_keys, vil gi deg tilgang til Git-serveren uten passord.

cd.ssh
vi autoriserte_nøkler

Kopier den offentlige nøkkelen og snurr opp en ny SSH-tilkobling til Git-serveren. Flytt inn i .ssh katalogen, åpne filen authorized_keys med et tekstredigeringsprogram og lim inn den offentlige nøkkelen. Lagre endringer og avslutt.

Fra da av skal du kunne koble til serveren uten passord. Gjenta dette trinnet for hver maskin som skal kobles til serveren.

Trinn 4: Lag en katalog for å lagre alle depotene dine

Få tilgang til Linux-serveren og lag en katalog eller bruk en innebygd som rotkatalog. Husk at dette er katalogen der alle lagrene dine vil bli lagret. Dette er en god praksis for ryddigere organisering av prosjekter.

mkdir katalognavn

Etter å ha opprettet katalogen, gå videre til det siste trinnet i denne veiledningen for å fullføre konfigureringen av Git-serveren.

Trinn 5: Start utviklingen ved å legge til et nytt prosjekt

Du er nå praktisk talt ferdig med å sette opp Git-serveren. Nå trenger du bare å starte utviklingen ved å initialisere repositories og legge til den eksterne opprinnelsen til din lokale maskin. Flytt inn i den overordnede katalogen ved å bruke cd kommando og opprett en .git prosjektkatalog:

cd foreldrekatalog
mkdirnytt prosjekt.git

Initialiser nå et bare git-depot:

git init --naken

Med depotet initialisert, er det på tide å legge til den eksterne opprinnelsen på din lokale maskin:

git remote legg til opprinnelsesnavn git@adresse:new_project.git

Det er alt du trengte å gjøre på serversiden av ting. Nå kan enhver autentisert klient utføre vanlige Git-operasjoner som push, pull, merge, clone og mer. For å starte nye prosjekter må du gjenta dette trinnet hver gang du oppretter et nytt prosjekt.

Test ut funksjonaliteten ved å utføre et git-push:

trykk på testfil
git add testfil
git forplikte -m "testfil"
git push navn master
git klone git@adresse: new_project.git

Filen din vil bli sendt til den eksterne opprinnelsen. For å krysssjekke om push-operasjonen fungerte, kan du klone depotet, og du bør finne testfilen i depotet.

Sikkerhetstips for Git-serveren din

Med Git-serveren oppe og kjører, må du følge nøye med på dens sikkerhetsstatus slik den er din personlige server, og det er ditt eget ansvar å vedlikeholde og beskytte den mot eksterne trusler. Noen av de beste sikkerhetspraksisene å ta i bruk er:

  • Deaktiver passordpålogging
  • Endre standard shell til git-shell. Dette begrenser den påloggede brukeren fra å utstede en ikke-git-kommando
  • Bruk en tilpasset port for SSH
  • Deaktiver root-brukerpålogging
  • Sikkerhetskopier data regelmessig

Det er mange slike sikkerhetskonfigurasjoner og sikkerhetstiltak som du kan implementere på Linux-serveren din for å beskytte den mot angripere og forhindre uautorisert tilgang.