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 ”。
netrcWindows 上具有支持的常见陷阱是,如果原始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-netrcgpg无论使用gpg.program选项如何,都使用' ' 进行了硬编码以解密。
这在Debian之类的发行版中存在问题,该发行版将现代GnuPG称为“gpg2'”
http.proxy在环境变量中定义一个。或者相反,将服务器添加到no_proxy变量中,以避免尝试通过WAN访问LAN服务器。
msysgitWindows 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设置。