Po przejrzeniu kilkudziesięciu postów SO, blogów itp. Wypróbowałem każdą metodę i oto, co wymyśliłem. Obejmuje WSZYSTKO.
Są to wszystkie sposoby i narzędzia, za pomocą których możesz bezpiecznie uwierzytelnić git w celu sklonowania repozytorium bez interaktywnego pytania o hasło .
- Klucze publiczne SSH
- Tokeny dostępu API
- GIT_ASKPASS
- .gitconfig zamiast
- .gitconfig [dane logowania]
- .git-credentials
- .netrc
- Bonus: Działa z pakietami prywatnymi
- node / npm package.json
- Python / pip / eggs wymagania.txt
- rubinowe klejnoty Gemfile
- Golang Go.mod
Najlepsze opcje bez przechowywania tekstu jawnego
Z tego, o co tutaj zapytano, klucze SSH GIT_ASKPASS
lub git credential store
użycie menedżera pęku kluczy OS mogą być najlepszym wyborem.
Ponieważ GIT_ASKPASS jest prawdopodobnie najmniej zrozumiałym z 3, opiszę to tutaj - a pozostałe są w ściągawce.
GIT_ASKPASS
Jak stworzyć GIT_ASKPASS
skrypt:
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
Jak tego użyć:
export MY_GIT_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export GIT_ASKPASS=$HOME/.git-askpass
git clone https://token@code.example.com/project.git
Skrypt otrzymuje standardowe wejście w postaci:
Password for 'scheme://host.tld':
Skrypt odbiera Git ENV, takie jak:
GIT_DIR=/Users/me/project/.git
GIT_EXEC_PATH=/usr/local/Cellar/git/2.19.0_1/libexec/git-core
GIT_PREFIX=
Więcej szczegółów w ściągu .
git remote set-url origin https://host.com/name/.git