Ber*_*aus 168 windows git authentication
当我使用Git克隆带有HTTP和用户密码的远程存储库时,是否可以在Windows上使用.netrc文件?
Von*_*onC 195
是否可以
.netrc
在Windows上使用文件?
是的:您必须:
%HOME%
(Git 2.0之前,Git 2.0+不再需要)_netrc
文件放入%HOME%
如果您使用的是Windows 7/10,请在CMD
会话中键入:
setx HOME %USERPROFILE%
Run Code Online (Sandbox Code Playgroud)
而%HOME%
将被设置为" C:\Users\"username"
".
去那个文件夹(cd %HOME%
)并创建一个名为' _netrc
' 的文件
注:另外,对于Windows,你需要一个" _netrc
"文件,不是一个" .netrc
"文件.
其内容非常标准(替换为<examples>
您的值):
machine <hostname1>
login <login1>
password <password1>
machine <hostname2>
login <login2>
password <password2>
Run Code Online (Sandbox Code Playgroud)
卢克在评论中提到:
在Windows 7上使用最新版本的msysgit,我不需要设置
HOME
环境变量.该_netrc
文件单独的伎俩.
这确实是我在" 试着"中install
.ssh
提到的"github,dir not there ":
git-cmd.bat
包含在msysgit中确实设置了%HOME%
环境变量:
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
Run Code Online (Sandbox Code Playgroud)
爱国者相信评论"它似乎不适用于http协议"
但是,我回答说,它netrc
是由curl
HTTP协议使用的,并且适用于HTTP协议,如本例所示(netrc
在页面中查找' '):. 此处也与HTTP协议一起使用:" _netrc
/ .netrc
替代cURL
".
netrc
在Windows 上支持的常见陷阱是,如果源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版本1.7.9+(2012年1月):这个答案从马克Longair详细介绍了凭据缓存机制,它也可以让你不如下图所示明文存储密码.
使用Git 1.8.3(2013年4月):
您现在可以使用加密的.netrc(with 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'
Run Code Online (Sandbox Code Playgroud)
(请注意,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'
Run Code Online (Sandbox Code Playgroud)
看到一个完整的例子" 有没有办法跳过输入密码时,使用https:// github
"
使用Git 2.18 +(2018年6月),您现在可以自定义用于解密加密.netrc
文件的GPG程序.
见Luis Marsano的提交786ef50,提交f07eeed(2018年5月12日)(``).
(由Junio C gitster
Hamano合并- -在提交017b7c5,2018年5月30日)
git-credential-netrc
:接受gpg
选项
git-credential-netrc
gpg
无论gpg.program选项如何,都被硬编码为' ' 解密.
这是像Debian这样的分布上的一个问题,它将现代GnuPG称为其他东西,比如'gpg2
'
Kin*_*gon 34
您还可以安装Git Credential Manager for Windows以在Windows凭据管理器中保存Git密码,而不是_netrc
.这是一种更安全的密码存储方式.
这将让Git使用.netrc
以下方式在HTTPS上进行身份验证:
_netrc
并位于c:\Users\<username>
.HOME=%USERPROFILE%
(使用控制面板中的"系统"选项设置系统范围的环境变量.根据Windows的版本,您可能需要选择"高级选项".)._netrc
文件中的密码不能包含空格(引用密码不起作用). 归档时间: |
|
查看次数: |
103422 次 |
最近记录: |