Après avoir passé en revue douzaines de postes de SO, de blogs, etc., j'ai essayé chaque et voici ce que j'ai obtenu. Ça couvre TOUT.
Ce sont toutes les manières et les outils par lesquels vous pouvez authentifier de manière sécurisée git pour cloner un dépôt. sans demande interactive de mot de passe .
- Clés publiques SSH
- Jetons d'accès à l'API
- GIT_ASKPASS
- .gitconfig au lieu de
- .gitconfig [informations d'identification].
- .git-credentials
- .netrc
- Bonus : fonctionne avec les forfaits privés
- node / npm package.json
- Python / pip / eggs exigences.txt
- ruby gems Fichier de gemmes
- golang go.mod
Meilleures options pour un stockage sans texte en clair
D'après ce qui est demandé ici, soit les clés SSH, GIT_ASKPASS
ou git credential store
utiliser le gestionnaire de trousseau de l'OS pourrait être le meilleur choix.
Comme GIT_ASKPASS est probablement le moins bien compris des 3, je vais le détailler ici - les autres sont dans le cheatsheet.
GIT_ASKPASS
Comment créer un GIT_ASKPASS
script :
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
Comment l'utiliser :
export MY_GIT_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export GIT_ASKPASS=$HOME/.git-askpass
git clone https://token@code.example.com/project.git
Le script reçoit un stdin sous la forme de :
Password for 'scheme://host.tld':
Le script reçoit des ENV de Git tels que :
GIT_DIR=/Users/me/project/.git
GIT_EXEC_PATH=/usr/local/Cellar/git/2.19.0_1/libexec/git-core
GIT_PREFIX=
Plus de détails dans le antisèche .