GitHub: procedura autenticazione 2021/2022

Home/Articoli/GitHub: procedura autenticazione 2021/2022

GitHub: procedura autenticazione 2021/2022

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.

Risorse su SSH

2022-02-18T16:43:28+00:00 febbraio 18th, 2022|Articoli|

Leave A Comment