Da agosto 2021 GitHub ha rimosso la possibilità di autenticarsi tramite password per tutte le operazioni effettuate, ad esempio da Command Line o Applicazioni Desktop.
Le soluzioni ora disponibili sono due:
1) autenticazione basata su Token
2) l’utilizzo di SSH
1. Token Based Authentication
L’opzione più semplice (e consigliata da Github) per il nuovo processo di autenticazione è quello di utilizzare un “personal access token” (PAT) via HTTPS.
La procedura è descritta nella documentazione di GitHub ma di seguito la riporto, passo-passo e tradotta in italiano, per completezza:
1. Verificare l’indirizzo email utilizzando la procedura prevista da GitHub.
2. Cliccare su “Settings” dal meno in alto a destra

3. Nella side bar cliccare su <> Developer Settings e poi si Personal Access Token:
4. Cliccare su Generate new token:
5. Assegnare una descrizione e una scadenza:
6. Selezionare i permessi per le operazioni che si desidera abilitare per questo token:
7. Generare un token:
8. Da command line, non appena sarà richiesta l’autenticazione, inserire:
git clone https://github.com/username/repo.git Username: il_tuo_username_github Password: il_tuo_token_appena_generato
2. SSH
Più complessa è la procedura nel caso si desideri impostare l’autenticazione tramite SSH, che si seguito descrivo per utenti Mac / Linux (e in parte per Windows):
1. Verifica l’esistenza di una chiave SSG
Innanzitutto verifica di non aver già generato una chiave SSG per il tuo computer.
Apri il terminale e digita il seguente comando:
ls -al ~/.ssh
Se hai già generato una chiave dovresti avere un output simile al seguente:
-rw------- 1 user_name user_name 1766 Jul 7 2018 id_rsa -rw-r--r-- 1 user_name user_name 414 Jul 7 2018 id_rsa.pub -rw------- 1 user_name user_name 12892 Feb 5 18:39 known_hosts
Se hai già generato la chiave puoi saltare il seguente passaggio e andare alla sezione “Copia la tua chiave SSH pubblica”.
Se invece non hai alcun output, o la directory non esiste, potresti ricevere un messaggio “No such file or directory “. In questo caso digita il comando:
mkdir $HOME/.ssh
e genera una nuova chiave:
ssh-keygen -t rsa -b 4096 -C your@email.com
Ora puoi verificare se la chiave esiste con il comando ls -al ~/.ssh e controllare che il risultato sia simile a quello mostrato nel paragrafo precedente.
IMPORTANTE: Le chiavi SSH generate sono sempre una coppia di chiavi, pubblica (id_rsa.pub) e privata (id_rsa). E’ di fondamentale importanza che la chiave privata non sia mai rivelata e che si utilizzi solo la chiave pubblica per operazioni come l’autenticazione su GithHub.
Ulteriori informazioni su questo argomento sono disponibili a questo url.
Ad ogni modo ora puoi aggiungere la tua chiave SSG a ssh-agent, uno strumento utilizzato per effettuare il login e salvare le chiavi private.
Innanzitutto assicuriamoci che ssh-agent sia funzionante e avviato:
eval "$(ssh-agent -s)" # for Mac and Linux
oppure:
eval `ssh-agent -s` ssh-agent -s # for Windows
Quindi aggiungi la chiave privata a ssh-agent con:
ssh-add ~/.ssh/id_rsa
Copia la tua chiave SSH pubblica
Ora è necessario copiare la chiave SSH pubblica nella clipboard (gli appunti):
Per Linux o Mac, puoi visualizzare il contenuto della chiave con:
cat ~/.ssh/id_rsa.pub # Linux
Quindi seleziona la chiave e copia l’output generato.
Su Windows puoi effettuare la stessa operazione con:
clip < ~/.ssh/id_rsa.pub # Windows
Aggiungi la chiave SSH pubblica su GitHub
Vai sui settings di GitHub e clicca sul pulsante “New SSH key” :
Quindi assegna un titolo alla chiave (a tua discrezione) e copia la chiave pubblica (id_rsa.pub) all’interno dell’apposita area di testo:
Quindi verifica se il processo di autenticazione funziona con:
ssh -T git@github.com
Se hai seguito correttamente le istruzioni dovresti vedere un messaggio simile:
Hi your_user_name! You’ve successfully authenticated, but GitHub does not provide shell access.
Leave A Comment