Come generare una coppia di chiavi SSH per GitLab

25 feb 2021 3 min di lettura
Come generare una coppia di chiavi SSH per GitLab
Indice dei contenuti

Introduzione

Git è un sistema di controllo della versione distribuito, il che significa che puoi lavorare localmente, quindi condividere o "inviare" le modifiche a un server. In questo caso, il server è GitLab.

GitLab utilizza il protocollo SSH per comunicare in modo sicuro con Git. Quando utilizzi le chiavi SSH per autenticarti sul server remoto GitLab, non è necessario fornire ogni volta nome utente e password.

Prerequisiti

Per utilizzare SSH per comunicare con GitLab, è necessario:

  • Il client OpenSSH, che viene fornito preinstallato su GNU/Linux, macOS e Windows 10.
  • SSH versione 6.5 o successiva. Le versioni precedenti utilizzavano una firma MD5, che non è sicura.

Per visualizzare la versione di SSH installata sul tuo sistema, esegui ssh -V:

ssh -V

GitLab non supporta l'installazione su Microsoft Windows, ma puoi configurare le chiavi SSH sul client Windows.

Tipi di chiavi SSH supportati

Per comunicare con GitLab, puoi utilizzare i seguenti tipi di chiavi SSH:

Gli amministratori possono limitare le chiavi consentite e la loro lunghezza minima.

Verifica se hai una coppia di chiavi SSH esistente

Prima di creare una coppia di chiavi, verifica se esiste già una coppia di chiavi.

Su Linux o macOS, vai alla tua directory home.

Vai alla sottodirectory .ssh/.

Verifica se esiste un file con uno dei seguenti formati:

AlgoritmoChiave pubblicaChiave privata
ED25519 (preferito)id_ed25519.pubid_ed25519
RSA (dimensione della chiave di almeno 2048 bit)id_rsa.pubid_rsa
Annunci dinamici della rete di ricerca (obsoleto)id_dsa.pubid_dsa
ECDSAid_ecdsa.pubid_ecdsa

Generare una coppia di chiavi SSH

Se non disponi di una coppia di chiavi SSH esistente, generane una nuova.

Apri un terminale.

Digita ssh-keygen -t seguito dal tipo di chiave e da un commento facoltativo. Questo commento verrà incluso nel file creato.pub. Potresti voler utilizzare un indirizzo email per il commento.

Ad esempio, per il formato ED25519 digita il seguente comando:

ssh-keygen -t ed25519 -C "tuo commento"

Per il formato RSA a 2048 bit:

ssh-keygen -t rsa -b 2048 -C "tuo commento"

Premere Invio. Viene visualizzato un output simile al seguente:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):

Accetta il nome file e la directory suggeriti, a meno che non si stia generando una chiave di distribuzione o si desideri salvare in una directory specifica in cui si memorizzano altre chiavi.

Specifica una passphrase:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Viene visualizzata una conferma, incluse le informazioni sulla posizione in cui sono archiviati i file.

Vengono generate una chiave pubblica e una privata. Aggiungi la chiave SSH pubblica al tuo account GitLab e mantieni la chiave privata al sicuro.

Configurare SSH in modo che punti a una directory diversa

Se non hai salvato la coppia di chiavi SSH nella directory predefinita, configura il tuo client SSH in modo che punti alla directory in cui è archiviata la chiave privata.

Apri un terminale ed esegui questo comando:

eval $(ssh-agent -s)
ssh-add <directory to private SSH key>

Salva queste impostazioni nel file ~/.ssh/config. Per esempio:

# GitLab.com
Host gitlab.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab_com_rsa

# Private GitLab instance
Host gitlab.company.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/example_com_rsa

Per ulteriori informazioni su queste impostazioni, vedere la pagina man ssh_config nel manuale di configurazione SSH:

man ssh_config

Le chiavi SSH pubbliche devono essere univoche per GitLab perché si legano al tuo account. La tua chiave SSH è l'unico identificatore che hai quando inserisci il codice con SSH. Deve mappare in modo univoco a un singolo utente.

Conclusione

In questo tutorial abbiamo visto come generare una chiave pubblica SSH per GitLab (public SSH keys).

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.