Answers:
是否可以
.netrc
在Windows上使用文件?
是:您必须:
%HOME%
(Git 2.0之前的版本,Git 2.0+不再需要)_netrc
文件%HOME%
如果您使用的是Windows 7/10,请在CMD
会话中键入:
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>
路加在评论中提到:
在Windows 7上使用最新版本的msysgit,我不需要设置
HOME
环境变量。该_netrc
文件单独的伎俩。
这确实是我在“ 尝试“ install
” github,.ssh
目录不存在 ”
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 上具有支持的常见陷阱是,如果原始https url指定了用户名,则git将绕过它的使用。
例如,如果您的.git/config
文件包含:
[远程“来源”] 提取= + refs / heads / *:refs / remotes / origin / * url = https://bob@code.google.com/p/my-project/
Git将不会通过解析您的凭据_netrc
,以解决此问题,请删除您的用户名,如下所示:
[远程“来源”] 提取= + refs / heads / *:refs / remotes / origin / * url = https://code.google.com/p/my-project/
替代方案:用Git版本1.7.9+(2012年1月):这个答案从马克Longair详细介绍了凭据缓存机制,它也可以让你不如下图所示明文存储密码。
使用Git 1.8.3(2013年4月):
现在,您可以使用加密的.netrc(带有gpg
)。
在Windows上:%HOME%/_netrc
(_
而不是' .
“)
添加了一个新的只读凭证帮助器(in
contrib/
),用于与.netrc/.authinfo
文件进行交互。
该脚本将允许您使用gpg加密的netrc文件,避免了将凭据存储在纯文本文件中的问题。
具有
.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年6月),您现在可以自定义用于解密加密.netrc
文件的GPG程序。
参见Luis Marsano的commit 786ef50和f07ee(2018年5月12日)(``)。
(通过合并JUNIOÇ滨野- gitster
-在提交017b7c5,2018年5月30日)
git-credential-netrc
:接受gpg
选项
git-credential-netrc
gpg
无论使用gpg.program选项如何,都使用' ' 进行了硬编码以解密。
这在Debian之类的发行版中存在问题,该发行版将现代GnuPG称为“gpg2
'”
http.proxy
在环境变量中定义一个。或者相反,将服务器添加到no_proxy
变量中,以避免尝试通过WAN访问LAN服务器。
msysgit
Windows 7 的最新版本,我不需要设置HOME
环境变量。该_netrc
文件单独的伎俩。
您还可以安装Windows版Git凭据管理器,以将Git密码保存在Windows凭据管理器中,而不是_netrc
。这是一种更安全的密码存储方式。
.netrc
文件中。您甚至无需在会话期间输入这些凭据。
这将使Git使用.netrc
以下命令在HTTPS上进行身份验证:
_netrc
并位于中c:\Users\<username>
。HOME=%USERPROFILE%
(使用控制面板中的“系统”选项设置系统范围的环境变量。根据Windows的版本,可能需要选择“高级选项”。)。_netrc
文件中的密码不能包含空格(引用密码将不起作用)。我正在发布一种_netrc
从网站www.course.com下载资料的方法。
如果有人要使用Coursera-dl在www.coursera.com上以及Windows操作系统上下载开放式资料,则有人要使用像Unix OS中的“ .netrc”之类的文件来添加选项-n
而不是-U <username> -P <password>
为了方便。他/她可以这样做:
HOME
环境变量很重要,因为在Windows上默认未定义。您可以将该变量设置为所需的任何目录(不必为C:\users\mylogin
):例如,在工作中,我将其设置为与Windows帐户关联的私有远程磁盘,这使我可以切换桌面而不必丢失我的.ssh
或_netrc
设置。