Изучив десятки SO-сообщений, блогов и т. Д., Я опробовал каждый метод, и вот что я придумал. Это охватывает ВСЕ.
Это все способы и инструменты, с помощью которых вы можете безопасно аутентифицировать git для клонирования репозитория без интерактивного запроса пароля .
- Открытые ключи SSH
- Токены доступа к API
- GIT_ASKPASS
- .gitconfig вместо
- .gitconfig [учетные данные]
- .git-учетные
- .netrc
- Бонус: работает с частными пакетами
- node / npm package.json
- python / pip / eggs needs.txt
- рубиновые камни Gemfile
- Голанг go.mod
Лучшие варианты для хранения без открытого текста
Из того, что здесь предлагается, SSH Keys GIT_ASKPASS
или git credential store
использование OS Keychain Manager могут быть лучшим выбором.
Поскольку GIT_ASKPASS, вероятно, наименее понят из 3, я подробно опишу это здесь, а остальные находятся в чит-листе.
GIT_ASKPASS
Как создать GIT_ASKPASS
скрипт:
echo 'echo $MY_GIT_TOKEN' > $HOME/.git-askpass
Как это использовать:
export MY_GIT_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export GIT_ASKPASS=$HOME/.git-askpass
git clone https://token@code.example.com/project.git
Скрипт получает стандартный ввод в виде:
Password for 'scheme://host.tld':
Сценарий получает Git ENV, такие как:
GIT_DIR=/Users/me/project/.git
GIT_EXEC_PATH=/usr/local/Cellar/git/2.19.0_1/libexec/git-core
GIT_PREFIX=
Подробнее в чит-листе .
git remote set-url origin https://host.com/name/.git