Git Server configureren met SSH op Ubuntu

Als je een klein aantal teamleden hebt die aan een aantal projecten werken, dan kun je een Git server via SSH op je kantoor instellen en heel gemakkelijk als een team aan projecten werken. Je hoeft GitHub of andere diensten in dat geval niet te gebruiken. SSH gebaseerde Git server is echt eenvoudig in te stellen en te gebruiken. In dit artikel zal ik je laten zien hoe je een Git server met SSH op Ubuntu kunt configureren en hoe je het kunt gebruiken. Dus, laten we beginnen.

In dit gedeelte ga ik je laten zien hoe je een Ubuntu server kunt configureren als een SSH toegankelijke Git server.
Werk eerst de APT package repository cache bij met het volgende commando:

$ sudo apt update

De APT package repository cache zou nu bijgewerkt moeten zijn.

Nu installeert u OpenSSH-server en Git met het volgende commando:

$ sudo apt install openssh-server git

Nu, druk op Y en vervolgens op <Enter> om de installatie te bevestigen.

OpenSSH-server en Git zouden nu geïnstalleerd moeten zijn.

Nu maakt u een nieuwe gebruiker git aan met het volgende commando:

$ sudo useradd –create-home –shell /bin/bash git

Alle Git repositories zullen worden opgeslagen in de home directory van de git gebruiker /home/git.

Nu log je in als de git-gebruiker met het volgende commando:

$ sudo su – git

Nu maak je een nieuwe directory .ssh met het volgende commando:

$ mkdir .ssh

Nu, geef alleen de git-gebruiker lees-, schrijf-, en uitvoeringsrechten op de directory .ssh/ als volgt:

$ chmod 700 .ssh/

Zoals je kunt zien, heeft de git-gebruiker alleen lees- (r), schrijf- (w), en uitvoer- (x) rechten op de .ssh/ directory.

$ ls -ld .ssh/

Nu, maak een nieuw leeg bestand .ssh/authorized_keys als volgt aan:

$ touch .ssh/authorized_keys

Maak lezen en schrijven naar het bestand alleen mogelijk voor de git-gebruiker, en wel als volgt:

$ chmod 600 .ssh/authorized_keys

Zoals u kunt zien, heeft alleen de git-gebruiker lees- (r) en schrijfrechten (w) voor het bestand .ssh/authorized_keys.

In het .ssh/authorized_keys bestand moet je de publieke sleutel toevoegen van de gebruikers die je toegang wilt geven tot de Git repositories op de Git server.

De publieke sleutel van de client aan de Git server toevoegen:

Om toegang te krijgen tot de Git repositories op de Git server, moet de client zijn/haar publieke sleutel aan de Git server toevoegen.

De client kan als volgt een publiek-privaat sleutelpaar genereren:

$ ssh-keygen

Druk op <Enter>.

Druk op <Enter>.

Druk op <Enter>.

Druk op <Enter>

Nu kan de client zijn/haar publieke sleutel als volgt vinden:

$ cat ~/.ssh/id_rsa.pub

De openbare sleutel van de client zou moeten worden afgedrukt. Nu kan de client deze publieke sleutel naar de manager sturen (die de Git server beheert). De manager kan dan de publieke sleutel aan de Git server toevoegen. Vervolgens kan de client toegang krijgen tot de Git server.

Laten we zeggen dat de client zijn/haar publieke sleutel naar de Git server manager heeft gestuurd. De manager heeft de publieke sleutel geüpload naar het bestand /tmp/shovon-key.pub op de Git server.

Nu kan de Git server manager de publieke sleutel van de client als volgt toevoegen:

$ cat /tmp/shovon-key.pub >> ~/.ssh/authorized_keys

Nu moet het bestand .ssh/authorized_keys de openbare sleutel van de client bevatten.

Git-repositories op de server aanmaken:

De clients kunnen geen nieuwe Git-repositories op de server aanmaken. De Git server manager moet een repository op de server aanmaken. Daarna kunnen de clients clonen, pushen/pullen van de repository.

Nu, maak een nieuwe lege Git repository testrepo op de Git server als volgt:

$ git init –bare testrepo

Nu hoeft de client alleen nog maar het IP-adres van de Git server te weten om toegang te krijgen tot de testrepo Git repository.

De Git server manager kan deze informatie als volgt vinden:

$ ip a

Zoals je kunt zien, is het IP adres van de Git server 192.168.21.185. Nu kan de serverbeheerder het doorgeven aan de klanten die aan het project zullen werken.

Git-repository van de server klonen:

Als de client eenmaal het IP-adres en de naam van de Git-repository weet, kan hij/zij deze als volgt naar zijn/haar computer klonen:

$ git clone [email protected]:~/>testrepo

Nu typt u ja in en drukt u op <Enter>. U hoeft dit maar één keer te doen, alleen de eerste keer.

De Git-repository testrepo moet worden gekloond van de server.

Er moet een nieuwe directory testrepo worden aangemaakt.

Wijzigingen maken en wijzigingen naar de Git server pushen:

Nu kan de client commits toevoegen aan de testrepo/ repository en de wijzigingen naar de Git server pushen.

$ cd testrepo/

$ echo “Hallo wereld” > test.txt

$ git add .

$ git commit -m ‘initial commit’

$ git push origin

Een nieuw teamlid toevoegen:

Nu, laten we zeggen, bob wil bijdragen aan de testrepo Git repository.

Het enige wat hij hoeft te doen is een SSH sleutelpaar te genereren en de publieke sleutel naar de Git server manager te sturen.

$ ssh-keygen

Als de Git server manager eenmaal de publieke sleutel van bob heeft, kan hij deze naar de Git server uploaden en toevoegen aan het .ssh/authorized_keys bestand als volgt:

$ cat /tmp/bob-key.pub >> ~/.ssh/authorized_keys

Nu kan bob de testrepo Git-repository als volgt vanaf de server clonen:

$ git clone [email protected]:~/testrepo

testrepo zou gekloond moeten zijn.

Er moet een nieuwe map testrepo worden aangemaakt op de computer van bob.

Nu kan bob als volgt naar de Git repository navigeren:

$ cd testrepo/

Hij zou een aantal bestaande commits moeten vinden.

$ git log

Nu kan bob zijn eigen werk doen en dat committen. Push vervolgens de wijzigingen naar de server.

$ echo “Hello World 2” >> test.txt

$ git add .
$ git commit -m ‘Gewijzigd bericht’

$ git push origin

Nu, kunnen andere mensen die aan dezelfde repository werken de wijzigingen als volgt overnemen:

$ git pull origin

Hij/zij zou de commits moeten vinden die bob heeft gemaakt.

Dus, dit is hoe je een Git server met SSH op Ubuntu configureert en gebruikt. Bedankt voor het lezen van dit artikel.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *