Configurare il server Git con SSH su Ubuntu

Se hai un piccolo numero di membri del team che lavorano su alcuni progetti, allora puoi impostare un server Git via SSH nel tuo ufficio e lavorare sui progetti come una squadra molto facilmente. Non dovete usare GitHub o altri servizi in questo caso. Il server Git basato su SSH è davvero facile da configurare e utilizzare. In questo articolo, vi mostrerò come configurare un server Git con SSH su Ubuntu e come usarlo. Quindi, cominciamo.

In questa sezione, vi mostrerò come configurare un server Ubuntu come un server Git accessibile via SSH.
Prima di tutto, aggiornate la cache del repository dei pacchetti APT con il seguente comando:

$ sudo apt update

Il repository dei pacchetti APT dovrebbe essere aggiornato.

Ora, installare il server OpenSSH e Git con il seguente comando:

$ sudo apt install openssh-server git

Ora, premere Y e poi premere <Enter> per confermare l’installazione.

Il server OpenSSH e Git dovrebbero essere installati.

Ora, create un nuovo utente git con il seguente comando:

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

Tutti i repository Git saranno salvati nella directory home dell’utente git /home/git.

Ora, fate il login come utente git con il seguente comando:

$ sudo su – git

Ora, create una nuova directory .ssh con il seguente comando:

$ mkdir .ssh

Ora, permettere solo all’utente git di avere i permessi di lettura, scrittura, esecuzione sulla directory .ssh/ come segue:

$ chmod 700 .ssh/

Come potete vedere, l’utente git ha solo permessi di lettura (r), scrittura (w), esecuzione (x) sulla directory .ssh/.

$ ls -ld .ssh/

Ora, create un nuovo file vuoto .ssh/authorized_keys come segue:

$ touch .ssh/authorized_keys

Per consentire solo la lettura e la scrittura del file dall’utente git come segue:

$ chmod 600 .ssh/authorized_keys

Come potete vedere, solo l’utente git ha i permessi di lettura (r) e scrittura (w) sul file .ssh/authorized_keys.

Nella cartella .ssh/authorized_keys, devi aggiungere la chiave pubblica degli utenti che vuoi far accedere ai repository Git sul server Git.

Aggiungere la chiave pubblica del client al server Git:

Per accedere ai repository Git sul server Git, il client deve aggiungere la sua chiave pubblica al server Git.

Il client può generare una coppia di chiavi pubbliche e private come segue:

$ ssh-keygen

Premere <Enter>.

Premere <Inserire>.

Premere <Inserire>.

Premere <Inserire>

Ora, il client può trovare la sua chiave pubblica come segue:

$ cat ~/.ssh/id_rsa.pub

La chiave pubblica del cliente dovrebbe essere stampata. Ora, il client può inviare questa chiave pubblica al manager (che gestisce il server Git). Il manager può quindi aggiungere la chiave pubblica al server Git. Poi il cliente può accedere al server Git.

Diciamo che il cliente ha inviato la sua chiave pubblica al manager del server Git. Il gestore ha caricato la chiave pubblica nel file /tmp/shovon-key.pub sul server Git.

Ora, il gestore del server Git può aggiungere la chiave pubblica del client come segue:

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

Ora, il file .ssh/authorized_keys dovrebbe avere la chiave pubblica del client.

Creazione di repository Git sul server:

I client non possono creare nuovi repository Git sul server. Il gestore del server Git deve creare un repository sul server. Poi, i client possono clonare, push/pullare dal repository.

Ora, create un nuovo repository Git vuoto testrepo sul server Git come segue:

$ git init –bare testrepo

Ora, il client deve solo conoscere l’indirizzo IP del server Git per accedere al repository Git testrepo.

Il gestore del server Git può trovare queste informazioni come segue:

$ ip a

Come potete vedere, l’indirizzo IP del server Git è 192.168.21.185. Ora, il gestore del server può comunicarlo ai clienti che lavoreranno al progetto.

Clonare il repository Git dal server:

Una volta che il cliente conosce l’indirizzo IP e il nome del repository Git, può clonarlo sul suo computer come segue:

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

Ora, digitate yes e premete <Enter>. Dovrete farlo una volta sola, solo la prima volta.

Il repository Git testrepo dovrebbe essere clonato dal server.

Dovrebbe essere creata una nuova directory testrepo.

Fare modifiche e spingere le modifiche al server Git:

Ora, il cliente può aggiungere commit al repository testrepo/ e spingere le modifiche al server Git.

$ cd testrepo/

$ echo “Hello world” > test.txt

$ git add .

$ git commit -m ‘initial commit’

$ git push origin

Aggiungere un nuovo membro del team:

Ora, diciamo che bob vuole contribuire al repository Git di testrepo.

Tutto quello che deve fare è generare una coppia di chiavi SSH e inviare la chiave pubblica al gestore del server Git.

$ ssh-keygen

Una volta che il gestore del server Git ha la chiave pubblica di bob, può caricarla sul server Git e aggiungerla alla cartella .ssh/authorized_keys come segue:

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

Ora, bob può clonare il repository Git testrepo dal server come segue:

$ git clone [email protected]:~/testrepo

testrepo dovrebbe essere clonato.

Una nuova directory testrepo dovrebbe essere creata nel computer di bob.

Ora, bob può navigare nel repository Git come segue:

$ cd testrepo/

Dovrebbe trovare alcuni commit esistenti.

$ git log

Ora, bob può fare il suo lavoro e fare il commit. Poi, spinge le modifiche sul server.

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

$ git add .
$ git commit -m ‘Messaggio modificato’

$ git push origin

Ora, altre persone che lavorano sullo stesso repository possono tirare le modifiche come segue:

$ git pull origin

Dovrebbe trovare i commit fatti da bob.

Quindi, questo è come configurare un server Git con SSH su Ubuntu e usarlo. Grazie per aver letto questo articolo.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *