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"
materiale correlato
Scheda di riferimento rapido di Git
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.