如何在Windows上使用.netrc文件来保存用户和密码
当我使用Git克隆具有http和用户密码的远程存储库时,是否可以在Windows上使用.netrc文件?
更新2013年4月,git 1.8.3:
您现在可以使用加密的.netrc (使用gpg)。
在Windows上: %HOME%/_netrc
( _
,不是' .
')
添加了一个新的只读凭证助手 (在contrib/
)与.netrc/.authinfo
文件进行交互。
该脚本将允许您使用gpg加密的netrc文件 ,避免将凭据存储在纯文本文件中的问题。
解析之前,具有.gpg
扩展名的文件将由GPG解密。
多个-f
参数是可以的。 它们按顺序处理,找到的第一个匹配条目通过凭证助手协议返回。
如果未指定-f
选项, .authinfo.gpg
按此顺序使用主目录中的.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
时有没有办法跳过密码输入”
2012年末更新,使用git 1.7.9+版本 :Mark Longair的这个答案详细介绍了凭证缓存机制 ,它允许您不用纯文本存储密码,如下所示。
(原文答案)
您必须定义:
%HOME%
_netrc
文件放入%HOME%
如果您使用的是Windows 7
运行cmd类型:
setx HOME %USERPROFILE%
并且%HOME%将被设置为' C:Users"username"
''
然后去它并创建一个名为' _netrc
'的文件
注意:对于Windows,您需要一个' _netrc
'文件,而不是' .netrc
'。
它的内容非常标准(用您的值替换):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
卢克在评论中提到:
在Windows 7上使用最新版本的msysgit,我不需要设置HOME环境变量。 _netrc
文件本身就做到了。
这确实是我在“尝试” install
“github, .ssh
dir not there”时提到的:
包含在msysgit中的git-cmd.bat
设置了%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
”。
Windows上带有netrc支持的常见陷阱是,如果源https URL指定用户名,git将绕过使用它。
例如,如果你的.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 Credential Manager for Windows,以在Windows凭证管理器中保存Git密码,而不是使用netrc。 这是一种更安全的方式来存储密码
这会让git通过https使用.netrc进行身份验证
_netrc
并位于c:Users<username>
HOME=%USERPROFILE%
环境变量(使用控制面板中的“系统”选项设置系统范围的环境变量。根据Windows的版本,您可能需要选择“高级选项”) _netrc
文件中的密码不能包含空格(引用密码不起作用) 上一篇: How to use .netrc file on windows to save user and password