Git http - надежно запомните учетные данные
Есть ли способ, позволяющий git помнить мои учетные данные при подключении к удаленным репозиториям через HTTP(S)?
Я попробовал core.askpass
подход подробно описан в git-config
чтобы внешний скрипт предоставил мои учетные данные. Хотя он отлично работает, имя пользователя и пароль по-прежнему хранятся в виде простого текста в небольшом сценарии оболочки.
5 ответов
git
вызывает cURL при работе по HTTP. Вы можете сохранить безопасные учетные данные, настроив .netrc
файл в домашнем каталоге вашего пользователя и сделать его приватным для пользователя (0600 в Linux).
Содержимое файла содержит имя пользователя и пароль для каждого удаленного домена.
machine myRemoteServer
login myUserName
password s3cret
См. https://stackru.com/questions/3947530/git-push-fatal-failed/7177690 для полной конфигурации на стороне сервера, которая может легко включать вызовы на ваш сервер ldap.
Начиная с (я думаю) git версии 1.7.8, от 2 декабря 2011 года 1), git поддерживает так называемых помощников по учетным данным.
См. Страницу руководства gitcredentials(7) для деталей
(Эта страница также описывает где core.askpass
вписывается в это).
Установка git по умолчанию включает в себя два помощника:
кеш: см. git-credential-cache(1) для подробностей.
Кэшируйте учетные данные в памяти на короткий период времени. Сохраненные учетные данные никогда не касаются диска и забываются после настраиваемого тайм-аута. Обратите внимание, что это решение только для Unix, так как оно использует сокет для связи с демоном.
store: Подробности см. в git-credential-store(1).
Храните учетные данные неопределенно долго на диске. У файла будут установлены разрешения на файловую систему, чтобы другие пользователи системы не могли его прочитать, но он не будет зашифрован или защищен иным образом. Та же безопасность, что и
.netrc
решение в ответе Эдди
Существуют некоторые сторонние помощники по учетным данным для хранения имени пользователя и пароля в KDEWallet (KDE), в GNOME Keyring, в Windows Credential Store (теперь это интегрировано в Git для Windows), в MacOS X Keychain и т. Д.
Примечания:
1) На странице справки по настройке Git GitHub упоминается, что
Вам нужен git 1.7.10 или новее, чтобы использовать помощник по учетным данным
Начиная с git 1.8.3 (май 2013 г.), теперь вы можете указать зашифрованный .netrc
для мерзавца использовать:
Новый помощник по учетным данным только для чтения (в
contrib/credential/netrc/
) взаимодействовать с.netrc/.authinfo
файлы были добавлены.
Этот сценарий позволит вам использовать файлы netrc, зашифрованные в формате gpg, что позволит избежать сохранения ваших учетных данных в текстовом файле.
-f|--file AUTHFILE
specify netrc-style files.
Файлы с
.gpg
расширение будет расшифровано GPG перед анализом.
множественный-f
аргументы в порядке. Они обрабатываются по порядку, и первая найденная совпадающая запись возвращается через вспомогательный протокол учетных данных (см. Ниже).Когда нет
-f
опция дана,.authinfo.gpg
,.netrc.gpg
,.authinfo
, а также.netrc
файлы в вашем домашнем каталоге используются в этом порядке.Чтобы включить этот помощник учетных данных:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(Обратите внимание, что Git будет готов "
git-credential-
"к имени помощника и найдите его в пути.)
Смотрите полный пошаговый пример на:
" Есть ли способ пропустить ввод пароля при использовании https://github.com
".
Безопасный вариант - использовать обычный SSH с парой открытый / закрытый ключ.
Это может работать для вас... http://samuel.kadolph.com/2011/03/store-your-git-https-passwords-in-your-os-x-keychain/