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> для удобства. Он/она может сделать это так:

  1. Проверьте домашний путь в ОС Windows:setx HOME %USERPROFILE%(см. VonC это). Это спасет HOME переменные среды как C:\Users\"username".

  2. найти в каталоге C:\Users\"username" и создайте имя файла _netrc.Примечание: нет никакого суффикса. содержание такое: machine coursera-dl login <user> password <pass>

  3. используйте команду coursera-dl -n --path PATH <course name> для загрузки материалов класса. Больше coursera-DL options Подробнее для на этой странице.