Introduzione
Supponiamo che tu abbia un progetto e un account GitHub personale. Stai lavorando su una macchina e hai diversi progetti, per alcuni dei quali si vuole effettuare il push al tuo account personale o viceversa. È qui che puoi utilizzare le chiavi SSH in modo da non dover reinserire il nome utente e la password per identificarti. Quello che fai è generare una chiave SSH. Quando lo fai, ottieni una coppia, una pubblica e l'altra privata. Quella pubblica è ciò che fornisci a GitHub e quella privata rimane sul tuo computer. Le modifiche apportate saranno consentite solo quando le chiavi corrispondono.
Senza ulteriori indugi, ecco i passaggi per aggiungere chiavi SSH al tuo GitHub.
- Passare alla directory in cui si desidera trasferire le modifiche a un altro account GitHub.
- Crea una nuova chiave SSH nel tuo terminale/riga di comando
Su Windows uso il seguente comando:
ssh-keygen -t rsa -C “your-email-address”
- -t sta per "tipo" e rsa è il tipo di crittografia
- -C sta per commento
Verrà quindi mostrato quanto segue:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/your_username/.ssh/id_rsa):
Copia e incolla il percorso seguito da un nome identificabile per il file:
/c/Users/your_username/.ssh/id_rsa_IDENTIFIABLE_NAME_HERE
Per questo tutorial l'ho nominato test:
/c/Users/your_username/.ssh/id_rsa_test
Assicurati di non sovrascrivere id_rsa poiché questa è la tua chiave esistente per il tuo account originale.
Quindi ti chiederà quanto segue:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Premi "Invio" due volte per lasciarlo vuoto.
Ora puoi digitare il seguente comando per vedere tutte le chiavi SSH che hai sul tuo computer locale:
ls -al ~/.ssh
- ls elenca tutti i file nella directory corrente
- a è per elencare tutti i file inclusi quelli nascosti
- l è per elencare in un formato lungo
Dovresti quindi ottenere qualcosa di simile a questo:
total 46
drwxr-xr-x 1 your_username 1049089 0 Jan 26 10:40 .
drwxr-xr-x 1 your_username 1049089 0 Jan 23 12:12 ..
-rw-r--r-- 1 your_username 1049089 3326 Nov 30 11:21 id_rsa
-rw-r--r-- 1 your_username 1049089 748 Nov 30 11:21 id_rsa.pub
-rw-r--r-- 1 your_username 1049089 1675 Jan 26 10:40 id_rsa_test
-rw-r--r-- 1 your_username 1049089 399 Jan 26 10:40 id_rsa_test.pub
-rw-r--r-- 1 your_username 1049089 803 Nov 30 12:08 known_hosts
Dovresti essere in grado di vedere il tuo nuovo file di chiave SSH. Come puoi vedere nel mio ho sia id_rsa_test che id_rsa_test.pub.
id_rsa_test è la tua chiave privata memorizzata sul tuo computer, mentre id_rsa_test.pub è la chiave pubblica che fornirai a GitHub.
Successivamente è necessario copiare la chiave SSH che è memorizzata nel file id_rsa_test.pub. Puoi aprirlo nell'editor di testo che preferisci. Attualmente uso atom, quindi ho aperto il file usando il seguente comando:
atom ~/.ssh/id_rsa_test.pub
Otterrai quindi qualcosa di simile a questo:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEmSbc7ms4SNIf7G0e9EqdrQRTB17VFTqRtCbQ55sSc11xZP5B07UXf9+................a955cf1GUzsNIr60E7VuVxirrr+K2WcleqifnDEg1H/VbyJtEekh4Aav9csBwemTz3 [email protected]
La chiave è in realtà più lunga ma l'ho abbreviata per il bene di questo tutorial.
Copia questo e vai al tuo account GitHub → Impostazioni → Chiavi SSH e GPG.
Fare clic su Nuova chiave SSH.
Assegna un titolo alla tua nuova chiave e poi incolla la nuova chiave SSH generata che hai copiato in precedenza. È una buona idea dare alle chiavi il nome della macchina da cui provengono.
Se sei su un Mac/Linux dovresti essere in grado di aggiungere questa chiave anche sul tuo terminale usando il comando seguente:
ssh-add ~/.ssh/id_rsa_test
Tuttavia, poiché sto usando una macchina Windows, ho dovuto creare un comando SSH. Puoi farlo digitando quanto segue direttamente nella riga di comando:
git config core.sshCommand=ssh -i ~/.ssh/id_rsa_test
oppure puoi farlo aprendo il file git config nel tuo editor di testo preferito:
git config -e
Il tuo file di configurazione git locale dovrebbe assomigliare a questo:
Aggiungere sshCommand = ssh -i ~/.ssh/id_ra_test
alla sezione [core] della lista.
Nota: se vuoi che il comando git config -e
apra il tuo file nell'editor di testo di tua scelta, devi averlo configurato globalmente. Il mio si è aperto in Vim poiché questa è l'impostazione predefinita. Puoi sovrascriverlo usando il seguente comando:
git config --global core.editor "atom --wait"
Altri comandi dell'editor possono essere trovati qui.
Imposta il tuo repository da inviare a GitHub con l'account associato
È inoltre necessario modificare l'e-mail e il nome dell'utente per connettersi all'account GitHub a cui si desidera associare il repository. Puoi cambiarlo nel file di configurazione mentre lo hai aperto:
In alternativa puoi farlo anche tramite la riga di comando:
git config user.name "test"
git config user.email [email protected]
Ora dovresti essere in grado di eseguire il commit e il push all'account corretto.
git init
git add .
git commit -m "First commit"
git remote add origin [email protected]:your_username/test.git
git push origin master
Conclusione
In questo tutorial abbiamo visto come avere 2 o più account GitHub su una macchina.