Git

Git e la cache per le credenziali

Matteo Galacci ·

Per repository HTTPS, l’helper cache conserva temporaneamente le credenziali in memoria. Nel repository corrente:

git config --local credential.helper 'cache --timeout=900'

Il timeout è in secondi; 900 equivale a 15 minuti ed è il valore predefinito. Per dimenticare subito le credenziali conservate dal daemon:

git credential-cache exit

Controlla anche gli helper già configurati con git config --show-origin --get-all credential.helper: impostarne uno locale non significa necessariamente rimuovere gli altri. Per l’archiviazione persistente usa un helper collegato al portachiavi del sistema o OAuth, se supportato dal servizio.

credential.helper store salva le credenziali in chiaro: non è equivalente a cache e non viene proposto come scorciatoia. Su un computer non fidato, la cache non protegge da chi controlla il sistema.

Provare la configurazione

Su Linux, dopo aver scelto consapevolmente gli helper, esegui git ls-remote origin su un repository privato HTTPS accessibile al tuo account. Autenticati con il metodo previsto dal servizio e ripeti il comando entro il timeout: non dovrebbe richiedere nuovamente la credenziale. Se origin usa SSH, questa prova non verifica credential-cache: SSH usa il proprio sistema di chiavi e agent.

Per rimuovere la configurazione locale dell’esempio usa git config --local --unset-all credential.helper e poi git credential-cache exit. Gli eventuali helper globali torneranno ad applicarsi.

Fonti e approfondimenti