Risparmia tempo accedendo a GitHub tramite SSH utilizzando l'autenticazione senza password.

L'autenticazione con GitHub in genere implica l'utilizzo di un token di accesso o di una password. Tuttavia, questi metodi possono essere scomodi e poco sicuri, soprattutto quando si accede a GitHub da più dispositivi.

GitHub offre la possibilità di utilizzare Secure Shell (SSH) per l'autenticazione. SSH presenta un protocollo di rete sicuro per l'accesso alla macchina remota. Questa caratteristica si rivela particolarmente utile in situazioni che richiedono automazione o frequenti accessi remoti.

Comprensione dell'autenticazione SSH

L'autenticazione con SSH prevede l'uso di chiavi crittografiche stabilire una connessione sicura (tunnel) tra un client (macchina locale) e un server (GitHub).

Quando si utilizza SSH per GitHub, un utente genera una coppia di chiavi SSH: una chiave pubblica e una chiave privata. La chiave pubblica viene caricata nell'account GitHub dell'utente, mentre la chiave privata rimane archiviata in modo sicuro nel computer locale dell'utente.

instagram viewer

Il processo può essere paragonato al concetto di serratura e chiave. La chiave pubblica (lucchetto) deve essere condivisa apertamente e archiviata in modo sicuro sul lato server. Funge da controparte della chiave privata, consentendo al server di verificare l'identità della tua macchina locale. Al contrario, la chiave privata (chiave) funge da identificatore univoco memorizzato esclusivamente sul computer locale, consentendo l'autenticazione corretta con il server.

Durante l'autenticazione con GitHub, la tua macchina locale presenta la sua chiave privata come prova di identità. Il server verifica se la chiave pubblica corrispondente associata al tuo account GitHub corrisponde alla chiave privata specificata. Se le chiavi corrispondono, il server concede l'accesso, stabilendo un crittografato e sicuro collegamento per la comunicazione.

Configurazione di SSH per GitHub

In questa sezione, vedrai come configurare SSH per l'autenticazione con GitHub.

1. Generazione coppia di chiavi SSH

Il processo di generazione di una coppia di chiavi SSH è il primo passo verso l'utilizzo di SSH per l'autenticazione.

  1. Apri il terminale o il prompt dei comandi.
  2. Esegui il seguente comando per generare una nuova coppia di chiavi SSH:
     ssh-keygen -t rsa -b 4096 -C "[email protected]"
  3. Verrà richiesto di inserire un percorso file per salvare la coppia di chiavi. Premere accedere per accettare la posizione predefinita (~/.ssh/id_rsa) o specificare una posizione personalizzata.
     > Generazione coppia di chiavi rsa pubblica/privata.
     > Inserisci file InQuale per salvare la chiave (/home/vagrant/.ssh/id_rsa):
  4. Successivamente, ti verrà richiesto di inserire una passphrase. Sebbene facoltativo, l'aggiunta di una passphrase funge da ulteriore livello di sicurezza. Assicurati di ricordare la tua passphrase.
     > Inserisci passphrase (vuoto per nessuna frase chiave): 
     > Inserisci di nuovo la stessa passphrase:
  5. Dopo aver generato la coppia di chiavi, dovresti vedere due file nella posizione specificata. id_rsa (chiave privata) e id_rsa.pub (chiave pubblica).
     > La tua identificazione è stata salvata In /home/vagrant/.ssh/id_rsa.
     > La tua chiave pubblica è stata salvata In /home/vagrant/.ssh/id_rsa.pub.
  6. Al termine, vengono visualizzate l'impronta digitale dei tasti e l'immagine randomart.
  7. Infine, avrai bisogno del contenuto della chiave pubblica da aggiungere a GitHub. Eseguire il seguente comando per ottenere il contenuto:
     cat ~/.ssh/id_rsa.pub

Assicurati di specificare il percorso (~/.ssh/id_rsa.pub nel mio caso) che hai usato durante la creazione delle chiavi.

Copia il contenuto in una posizione sicura e temporanea per un uso successivo.

2. Aggiunta della chiave pubblica a GitHub

Ora che hai generato una coppia di chiavi SSH, devi aggiungere la chiave pubblica al tuo account GitHub.

  1. Accedi al tuo account GitHub e vai al tuo account Impostazioni.
  2. Clicca su Chiavi SSH e GPG situato nella barra laterale sinistra.
  3. Clicca su Nuova chiave SSH.
  4. Dai la tua chiave SSH a Titolo.
  5. Incollare il contenuto della chiave pubblica nel file Chiave campo.
  6. Infine, fai clic sul Aggiungi chiave SSH per salvare la chiave SSH nel tuo account GitHub.

Hai esportato con successo la chiave pubblica sul tuo account GitHub con questi.

3. Configurazione di un agente SSH

Un agente SSH è un programma che aiuta a gestire le chiavi SSH e fornisce un modo sicuro per archiviarle e utilizzarle. Funge da intermediario tra la tua macchina locale e il server remoto durante l'autenticazione SSH. Ciò consente di gestire più chiavi SSH per diversi account GitHub.

  1. Assicurarsi che l'agente SSH sia in esecuzione.
     $ eval"$(ssh-agente -s)"
     > Agente pid 2757
  2. Aggiungere la chiave privata all'agente SSH.
     $ ssh-add ~/.ssh/id_rsa
     > Inserisci la frase segreta per /home/vagrant/.ssh/id_rsa:
     > Identità aggiunta: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

Hai configurato correttamente un agente SSH per gestire le tue chiavi.

4. Test della connessione SSH

Ora puoi testare per verificare che la tua connessione SSH sia configurata correttamente e puoi autenticarti su GitHub usando SSH.

  • Eseguire il comando seguente per testare la connessione SSH a GitHub;
     ssh -T [email protected]
    se tutto va bene vedrai un avviso riguardante l'impronta digitale. Confermare l'impronta digitale e il tipo continuare.
     > L'autenticità dell'ospite 'github.com (140.92.130.4)' Potereessere stabilito.
    > L'impronta digitale della chiave ECDSA è SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
    > Sei sicuro di volerlo Continua collegamento (sì/no)?
  • Dopo aver digitato , vedrai un output simile a quello qui sotto.
     > Avviso: aggiunto in modo permanente 'github.com, 140.92.130.4' (ECDSA) all'elenco degli host noti.
    > Ciao principewillingoo! Voisono stati autenticati correttamente, ma GitHub non fornisce l'accesso alla shell.

Questo dimostra che l'autenticazione ha avuto successo.

Gestione dei repository con SSH

La configurazione di SSH ti consente di gestire i tuoi repository senza doversi preoccupare dei problemi di password e token di accesso.

Impostazione dell'URL remoto

git remoto impostato-url origine [email protected]:/.idiota

Clonazione di un repository

idiota clone [email protected]:/.idiota

Push delle modifiche a un repository

git push origine 

Estrazione delle modifiche da un repository

git pull origine 

Vantaggi di SSH rispetto all'autenticazione tramite password

L'uso di SSH per l'autenticazione offre diversi notevoli vantaggi rispetto ai tradizionali metodi di autenticazione basati su password. Ciò comprende:

  • L'autenticazione SSH elimina la necessità di password, riducendo il rischio di furto di credenziali.
  • L'uso di chiavi crittografiche lo rende più immune da attacchi di forza bruta rispetto alle password.
  • Se la tua chiave privata è compromessa, puoi revocarla e sostituirla, rendendo inutilizzabile la chiave compromessa.

Per questo motivo, l'autenticazione SSH tende ad essere un'opzione migliore rispetto all'autenticazione tramite password.

Best practice e risoluzione dei problemi

Per garantire una configurazione SSH fluida e sicura, è necessario seguire le migliori pratiche ed essere consapevoli dei problemi comuni che possono verificarsi e dei modi per risolverli.

  1. Imposta sempre una passphrase per creare un ulteriore livello di sicurezza.
  2. Esercitati con frequenti rotazioni di chiavi e backup.
  3. Conferma ogni passaggio per evitare errori di autorizzazione o configurazione errata dell'agente SSH.

Aderendo a queste best practice puoi utilizzare con sicurezza l'autenticazione SSH per GitHub.

La versatilità di SSH

SSH è ampiamente utilizzato in altre aree per gestire in remoto server, microcontrollori e dispositivi di rete in quanto consente un accesso sicuro all'interfaccia della riga di comando (CLI), consentendo agli utenti di eseguire diverse attività, configurare le impostazioni, trasferire file e risolvere i problemi problemi.