Un server Git ospita il repository di un progetto, che contiene il codice sorgente e altri file core. Mentre, per la maggior parte, puoi fare affidamento su servizi di hosting Git conosciuti a livello mondiale come GitHub, in alcuni casi, è meglio ospitare il tuo server Git personale per una maggiore privacy, personalizzazione e sicurezza.

Impariamo come configurare un server Git privato su Linux.

Prerequisiti per configurare un server Git

Prima di iniziare a configurare il tuo server Git privato, devi avere accesso a una macchina di riserva o essere abbonato a provider cloud. Questo è importante poiché configurerai la macchina di riserva in modo che funga da server Git a cui ti connetterai dalla tua macchina locale ed eseguirai operazioni Git.

Sebbene non ci siano requisiti di sistema ben definiti, un gigabyte di RAM dovrebbe essere sufficiente per il funzionamento del server Git. Inoltre, assicurati di avere una distribuzione Linux attiva e funzionante sulla macchina.

Passaggio 1: scarica e installa Git sul server Linux

instagram viewer

Inutile dire che devi avere Git installato sul tuo server Linux come passaggio preliminare. Avvia un terminale e usa il gestore pacchetti della tua distribuzione Linux per installare Git:

Sui derivati ​​Debian/Ubuntu:

sudo apt installare idiota

SU Distribuzioni basate su archi:

sudo pacman -S git

Su CentOS/RHEL/Fedora:

sudo dnf installare idiota

Una volta installato Git sul tuo sistema, procedi con i passaggi successivi per configurare il tuo sistema Linux per ospitare i tuoi repository Git come server Git.

Passaggio 2: configura un account utente Git

Collegati al tuo server Linux tramite SSH, RDP o qualsiasi altro protocollo di accesso remoto. Oppure, se stai utilizzando un computer di riserva come server, accendilo e crea un nuovo account utente per gestire i tuoi repository.

nome utente ssh@indirizzo
sudo useradd git

Dopo aver aggiunto il nuovo utente, passa ad esso utilizzando il su comando:

su git

Creazione di un dedicato idiota l'account utente è un protocollo di sicurezza che garantisce che i client che si connettono al tuo server Git abbiano visibilità e accesso limitati alle risorse sulla macchina. Ciò ti consente di collaborare in sicurezza a progetti di gruppo in cui più membri del team accederanno al tuo server.

Passaggio 3: crea la directory .ssh e aggiungi le chiavi autorizzate

Creazione di un .ssh directory è necessaria per memorizzare le chiavi pubbliche e altri dati essenziali che determineranno chi avrà accesso a questo server Git. Per cominciare, accedi all'account utente git che hai creato in precedenza, crea la directory .ssh e limita l'accesso solo all'utente git:

ssh git@indirizzo
mkdir.ssh
chmod 700 .ssh/
tocca .ssh/keys_autorizzati

Proteggi i permessi di accesso alla directory usando chmod comando per garantire che nessuno tranne te possa apportare modifiche ad esso. Spostati nel .ssh directory e creare un nuovo file "authorized_keys" utilizzando il file tocco comando.

CD.ssh
ssh-keygen -t rsa # esegui questo comando solo se NON hai un file id_rsa.pub
gattoid_rsa.pub

Dovrai aggiornare questo file con le chiavi pubbliche SSH dei client a cui vuoi dare accesso al server Git. Sospendere la sessione SSH e aprire il file .ssh/id_rsa.pub file nella tua macchina locale usando un editor di testo o il comando del gatto. Questo file contiene la tua chiave crittografata pubblica, che, una volta scritta nel file authorized_keys, ti consentirà di accedere al server Git senza una password.

CD.ssh
vi chiavi_autorizzate

Copia la chiave pubblica e avvia una nuova connessione SSH al server Git. Spostati nel .ssh directory, apri il file authorized_keys con un editor di testo e incolla la chiave pubblica. Salva le modifiche ed esci.

Da quel momento in poi, dovresti essere in grado di connetterti al server senza alcuna password. Ripetere questo passaggio per ogni macchina che si connetterà al server.

Passaggio 4: crea una directory per archiviare tutti i tuoi repository

Accedi al server Linux e crea una directory o usane una integrata come directory principale. Tieni presente che questa è la directory in cui verranno archiviati tutti i tuoi repository. Questa è una buona pratica per il bene di un'organizzazione più ordinata dei progetti.

mkdir nome_directory

Dopo aver creato la directory, vai al passaggio finale di questa guida per completare la configurazione del server Git.

Passaggio 5: avviare lo sviluppo aggiungendo un nuovo progetto

Ora hai praticamente finito con la configurazione del server Git. Ora devi solo dare il via allo sviluppo inizializzando i repository e aggiungendo l'origine remota al tuo computer locale. Spostati nella directory principale usando il CD comandare e creare a .idiota directory del progetto:

CD directory_genitore
mkdirnuovo progetto.idiota

Ora, inizializza un repository git nudo:

git init --spoglio

Con il repository inizializzato, è ora di aggiungere l'origine remota sul tuo computer locale:

git remote aggiungi il nome di origine git@indirizzo:nuovo_progetto.git

Questo è tutto ciò che devi fare sul lato server delle cose. Ora qualsiasi client autenticato può eseguire normali operazioni Git come push, pull, merge, clone e altro. Per iniziare nuovi progetti dovrai ripetere questo passaggio ogni volta che crei un nuovo progetto.

Prova la sua funzionalità eseguendo un git push:

tocca file di prova
git aggiungi file di prova
git commit -m "file di prova"
git push nome master
idiota clone git@indirizzo: nuovo_progetto.git

Il tuo file verrà inviato con successo all'origine remota. Per verificare se l'operazione push ha funzionato, puoi clonare il repository e dovresti trovare il file di test nel repository.

Suggerimenti per la sicurezza per il tuo server Git

Con il server Git attivo e funzionante, devi prestare molta attenzione al suo livello di sicurezza così com'è il tuo server personale ed è tua esclusiva responsabilità mantenerlo e proteggerlo dall'esterno minacce. Alcune delle migliori pratiche di sicurezza da adottare sono:

  • Disabilita l'accesso con password
  • Cambia la shell predefinita in git-shell. Ciò impedisce all'utente connesso di emettere qualsiasi comando non git
  • Usa una porta personalizzata per SSH
  • Disabilita l'accesso dell'utente root
  • Eseguire il backup dei dati regolarmente

Esistono molte configurazioni di sicurezza e misure di sicurezza che puoi implementare sul tuo server Linux per proteggerlo dagli aggressori e prevenire accessi non autorizzati.