Close

Cos'è una chiave SSH Git?

Una chiave SSH è una credenziale di accesso per il protocollo di rete SSH (secure shell). Questo protocollo di rete sicuro autenticato e crittografato viene utilizzato per la comunicazione remota tra macchine su una rete aperta non protetta. SSH viene utilizzato per il trasferimento remoto di file, la gestione della rete e l'accesso remoto al sistema operativo. L'acronimo SSH viene utilizzato anche per descrivere una serie di strumenti utilizzati per interagire con il protocollo SSH.

SSH utilizza una coppia di chiavi per avviare un handhsake sicuro tra parti remote. La coppia di chiavi contiene una chiave pubblica e una privata. La nomenclatura privata e pubblica può creare confusione in quanto sono entrambe chiamate chiavi. È più utile pensare alla chiave pubblica come a un «lucchetto» e alla chiave privata come alla «chiave» vera e propria. Tu dai il «lucchetto» pubblico a soggetti remoti per crittografare o «bloccare» i dati. Questi dati vengono quindi aperti con la chiave «privata» che possiedi in un luogo sicuro.


Come creare una chiave SSH


Le chiavi SSH sono generate tramite un algoritmo crittografico a chiave pubblica, il più comune è RSA o DSA. A un livello molto generale le chiavi SSH vengono generate attraverso una formula matematica che richiede 2 numeri primi e una variabile di partenza casuale per generare la chiave pubblica e privata. Si tratta di una formula unidirezionale che garantisce che la chiave pubblica possa essere derivata dalla chiave privata ma che al contempo la chiave privata non possa essere derivata dalla chiave pubblica.

Le chiavi SSH vengono create utilizzando uno strumento di generazione di chiavi. La suite di strumenti a riga di comando SSH include uno strumento keygen. La maggior parte dei provider di hosting git offre guide su come creare una chiave SSH.

Generare una chiave SSH su Mac e Linux

Entrambi i sistemi operativi OsX e Linux dispongono di moderne applicazioni terminali complete fornite con la suite SSH installata. Il processo per creare una chiave SSH in questi due sistemi è lo stesso.

1. Esegui quanto segue per iniziare la creazione della chiave

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Logo Git
materiale correlato

Scheda di riferimento rapido di Git

Logo di Bitbucket
Scopri la soluzione

Impara a utilizzare Git con Bitbucket Cloud

Questo comando creerà una nuova chiave SSH usando l'e-mail come etichetta

2. Ti verrà quindi richiesto di "Inserire un file in cui salvare la chiave. "
Puoi specificare il percorso del file o premere «Invio» per accettare il percorso predefinito del file.

> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

3. Il prompt successivo richiederà una passphrase sicura. Una passphrase aggiungerà un ulteriore livello di sicurezza all'SSH e sarà richiesta ogni volta che viene utilizzata la chiave SSH. Se qualcuno ottiene l'accesso al computer in cui sono archiviate le chiavi private, potrebbe anche accedere a qualsiasi sistema che utilizza quella chiave. L'aggiunta di una passphrase alle chiavi eviterà questo scenario.

> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

A questo punto, sarà stata generata una nuova chiave SSH nel percorso del file specificato in precedenza.

4. Aggiungi la nuova chiave SSH a ssh-agent

Ssh-agent è un altro programma che fa parte della suite di strumenti SSH. È responsabile della conservazione delle chiavi private. Vedilo come un portachiavi. Oltre a conservare le chiavi private, funge anche da broker di richieste di firma delle richieste SSH con le chiavi private in modo che queste ultime non vengano mai trasmesse in modo insicuro.

Prima di aggiungere la nuova chiave SSH a ssh-agent assicurati innanzitutto che ssh-agent sia in esecuzione eseguendo:

$ eval "$(ssh-agent -s)"
> Agent pid 59566

Una volta che ssh-agent è in esecuzione, il seguente comando aggiungerà la nuova chiave SSH all'agente SSH locale.

ssh-add -K /Users/you/.ssh/id_rsa

La nuova chiave SSH è ora registrata e pronta per l'uso!

Generare una chiave SSH su Windows


Gli ambienti Windows non dispongono di una shell unix predefinita standard. Dovranno essere installati programmi shell esterni per avere un'esperienza keygen completa. L'opzione più semplice è utilizzare Git Bash. Una volta installato Git Bash, è possibile seguire gli stessi passaggi per Linux e Mac all'interno della shell di Git Bash.

Sottosistema Windows Linux


Gli ambienti Windows moderni offrono un sottosistema Windows Linux. Il sottosistema Windows Linux offre una shell Linux completa in un ambiente Windows tradizionale. Se è disponibile un sottosistema Linux, gli stessi passaggi precedentemente discussi per Linux e Mac possono essere seguiti nel sottosistema Windows Linux.

Riepilogo


Le chiavi SSH vengono utilizzate per autenticare connessioni sicure. Seguendo questa guida, potrai creare e iniziare a utilizzare una chiave SSH. Git è in grado di utilizzare chiavi SSH anziché la tradizionale autenticazione con password quando si esegue il push o il pull verso i repository remoti. Le moderne soluzioni git ospitate come Bitbucket supportano l'autenticazione con chiave SSH.


Condividi l'articolo
Argomento successivo

Letture consigliate

Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.

Le persone collaborano utilizzando una parete piena di strumenti

Blog di Bitbucket

Illustrazione su Devops

Percorso di apprendimento DevOps

Funzione Demo Den per demo con esperti Atlassian

Come Bitbucket Cloud funziona con Atlassian Open DevOps

Iscriviti alla nostra newsletter DevOps

Thank you for signing up