Можно ли использовать файл .netrc
в Windows?
Да: необходимо:
- определить переменную среды
%HOME%
(предварительно-Git 2.0, больше не требуется с Git 2.0 +) - поместите файл
_netrc
в %HOME%
Если вы используете Windows 7/10, в CMD
session, введите:
setx HOME %USERPROFILE%
, и %HOME%
будет установлен в 'C:\Users\"username"
'.
Перейдите в эту папку (cd %HOME%
) и создайте файл с именем '_netrc
'
Примечание: Опять же, для Windows вам нужен файл' _netrc
', , а не и файл .netrc
.
Его содержимое вполне стандартно(Замените <examples>
вашими значениями):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Люк упоминает в комментариях:
Использование последней версии msysgitв Windows 7 мне не нужно было устанавливать переменную окружения HOME
.Только файл _netrc
добился цели.
Это действительно то, что я упомянул в " Попытка" install
"github, .ssh
dir там нет ":
git-cmd.bat
, включенный в msysgit, устанавливает переменную окружения %HOME%
:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
爱国者 верит в комментариях, что "кажется, что он выиграл"t работает для протокола HTTP "
Однако я ответил, что netrc
используется curl
и работает для протокола HTTP, как показано в в этом примере (ищите 'netrc
'на странице):Также используется с протоколом HTTP здесь: "_netrc
/ .netrc
альтернатива cURL
".
Обычная ловушка с поддержкой netrc
в Windows состоит в том, чтоGit будет обходить его, если в URL-адресе источника https указано имя пользователя.
Например, если ваш .git/config
файл содержит:
[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): Этот ответ из Марк Лонгэйр подробнее механизм кэширования учетных данных , который также позволяет вам не сохранять ваш пароль в виде простого текста, как показано ниже.
С Git 1.8.3 (апрель 2013):
Теперь вы можете использовать зашифрованный .netrc (с gpg
).
В Windows:%HOME%/_netrc
(_
, а не '.
')
A новый помощник только для чтения учетных данных (в contrib/
) длядобавлено взаимодействие с файлами .netrc/.authinfo
.
Этот сценарий позволит вам использовать файлы netrc, зашифрованные в формате gpg , что позволит избежать сохранения ваших учетных данных на обычномтекстовый файл.
FФайлы с расширением .gpg
будут расшифрованы GPG перед анализом.
Несколько аргументов -f
в порядке.Они обрабатываются по порядку, и первая найденная соответствующая запись возвращается по вспомогательному протоколу учетных данных.
Когда не указана опция -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, используемую для дешифрования зашифрованного файла .netrc
.
См. коммит 786ef50 , коммит f07eeed (12 мая 2018 г.) Луис Марсано (``) .
(объединено Junio C Hamano- gitster
- в коммит 017b7c5 , 30 мая 2018 г.)
git-credential-netrc
: принять gpg
опция
git-credential-netrc
был закодирован для расшифровки с помощью 'gpg
'независимо от опции gpg.program.
Это проблема в дистрибутивах, таких как Debian, которые называют современный GnuPG как-то иначе, например,' gpg2
'