Después de revisar docenas de publicaciones SO, blogs, etc., probé todos los métodos, y esto es lo que se me ocurrió. Cubre TODO.
Estas son todas las formas y herramientas mediante las cuales puede autenticar de forma segura git para clonar un repositorio sin una solicitud de contraseña interactiva .
- SSH Public Keys
- Tokens de acceso API
- GIT_ASKPASS
- .gitconfig en su lugar
- .gitconfig [credencial]
- .git-credentials
- .netrc
- Bonificación: funciona con paquetes privados
- nodo / npm package.json
- python / pip / eggs require.txt
- gemas de rubí Gemfile
- golang go.mod
Las mejores opciones para almacenamiento sin texto sin formato
De lo que se pregunta aquí, ya sea SSH Keys, GIT_ASKPASS
o git credential store
usar el OS Keychain Manager podría ser la mejor opción.
Dado que GIT_ASKPASS es probablemente el menos comprendido de los 3, detallaré eso aquí, y los otros están en la hoja de trucos.
GIT_ASKPASS
Cómo crear un GIT_ASKPASS
script:
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
Cómo usarlo:
export MY_GIT_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export GIT_ASKPASS=$HOME/.git-askpass
git clone https://token@code.example.com/project.git
El script recibe stdin en forma de:
Password for 'scheme://host.tld':
El script recibe Git ENV como:
GIT_DIR=/Users/me/project/.git
GIT_EXEC_PATH=/usr/local/Cellar/git/2.19.0_1/libexec/git-core
GIT_PREFIX=
Más detalles en la hoja de trucos .
git remote set-url origin https://host.com/name/.git