Git-как пользоваться.файл netrc в Windows для сохранения пользователя и пароля
можно ли использовать a .файл netrc в Windows, когда я использую Git для клонирования удаленного репозитория с HTTP и паролем пользователя?
4 ответов
можно использовать
.netrc
файл в Windows?
Да: вы должны:
- определить переменную среды
%HOME%
(pre-Git 2.0, больше не требуется с Git 2.0+) - поставить на
%HOME%
если вы используете Windows 7/10, В CMD
сессии, типа:
setx HOME %USERPROFILE%
и %HOME%
будет установлен в 'C:\Users\"username"
'.
Идите, что эта папка (cd %HOME%
) и сделать файл называется '_netrc
'
Примечание: опять же, для Windows, вам нужен '', не a''.
его содержимое довольно стандартное (замените <examples>
С вашими ценностями):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Люк упоминает в комментарии:
используя последнюю версию msysgit на Windows 7, мне не нужно было устанавливать
HOME
переменные среды. The_netrc
файл в одиночку сделал уловка.
это действительно то, что я упомянул в "пытается "install
" на GitHub, .ssh
dir not there":git-cmd.bat
включено в msysgit устанавливает %HOME%
переменные среды:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
国国者 верит в комментарии ,что "кажется, что он не будет работать для протокола http"
однако я ответил, что netrc
используется curl
, и работает для протокола HTTP, как показано в этот пример (искать 'netrc
на странице): . Также используется с протоколом HTTP здесь:"_netrc
/.netrc
альтернатива cURL
".
общая ловушка с с netrc
поддержка в Windows заключается в том, что git будет обходить его, если исходный url https указывает имя пользователя.
например, если ваш содержит:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = https://bob@code.google.com/p/my-project/
Git не будет разрешать ваши учетные данные через _netrc
, чтобы исправить это, удалите имя пользователя, например:
[remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = https://code.google.com/p/my-project/
альтернативное решение: с git версии 1.7.9+ (январь 2012): ответ с Марк Longair детали механизм кэша учетных данных, который и позволяет не хранить пароль в виде обычного текста, как показано ниже.
с Git 1.8.3 (апрель 2013):
теперь вы можете использовать зашифровать .netrc по (с gpg
).
На Windows: %HOME%/_netrc
(_
, а не.
')
A новый помощник учетных данных только для чтения (in
contrib/
) для взаимодействия с.netrc/.authinfo
добавлены файлы.
этот скрипт позволит вам используйте GPG-зашифрованные файлы netrc, во избежание того, чтобы ваши учетные данные, хранящиеся в обычный текстовый файл.
файлы
.gpg
расширение будет расшифровано GPG перед разбором.
Несколько-f
аргументы в порядке. Они обрабатываются по порядку, и первая найденная соответствующая запись возвращается через вспомогательный протокол учетных данных.при отсутствии дали,
.authinfo.gpg
,.netrc.gpg
,.authinfo
и.netrc
файлы в вашем домашнем каталоге используются в этом порядке.
чтобы включить эти учетные данные помощник:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
(обратите внимание, что Git добавит"
git-credential-
" к имени помощника и искать его в пути.)
# and if you want lots of debugging info:
git config credential.helper '$shortname -f AUTHFILE -d'
#or to see the files opened and data found:
git config credential.helper '$shortname -f AUTHFILE -v'
см. полный пример в "есть ли способ пропустить ввод пароля при использовании https:// github
"
с Git 2.18+ (июнь 2018) Теперь вы можете настроить программу GPG, используемую для расшифровки зашифрованного .
посмотреть совершить 786ef50, совершить f07eeed (12 мая 2018) by Marsano Луис (`).
(слитый Junio C Hamano -- gitster
-- на совершить 017b7c5, 30 мая 2018)
git-credential-netrc
: примитеgpg
опции
git-credential-netrc
было трудно расшифровать с помощью'gpg
' независимо от ГРО.опции программы.
Это проблема в дистрибутивах, таких как Debian, которые называют modern GnuPG что-то вроде 'gpg2
'
вы также можете установить диспетчер учетных данных Git для Windows для сохранения паролей Git в диспетчере учетных данных Windows вместо _netrc
. Это более безопасный способ хранения паролей.
Это позволит git аутентифицироваться на HTTPS с помощью .netrc
:
- файл должен быть назван
_netrc
и расположенном вc:\Users\<username>
. - вам нужно будет установить переменную среды под названием
HOME=%USERPROFILE%
(задайте общесистемные переменные среды с помощью опции System на панели управления. В зависимости от версии Windows, вам может понадобиться выбрать "Дополнительные параметры".). - пароль, хранящийся в
_netrc
файл не может содержать пробелов (цитирование пароля не будет работать.)
я публикую способ использования _netrc
для загрузки материалов с сайта www.course.com.
если кто-то собирается использовать coursera-dl для загрузки материалов открытого класса на www.coursera.com, а на ОС Windows кто-то хочет использовать файл типа ".netrc", который находится в like-Unix OS, чтобы добавить опцию -n
вместо -U <username> -P <password>
для удобства. Он/она может сделать это так:
Проверьте домашний путь в ОС Windows:
setx HOME %USERPROFILE%
(см. VonC это). Это спасетHOME
переменные среды какC:\Users\"username"
.найти в каталоге
C:\Users\"username"
и создайте имя файла_netrc
.Примечание: нет никакого суффикса. содержание такое:machine coursera-dl login <user> password <pass>
используйте команду
coursera-dl -n --path PATH <course name>
для загрузки материалов класса. Больше coursera-DL options Подробнее для на этой странице.