Git - 如何在 Windows 上使用 .netrc 文件保存用户和密码
当我使用 Git 通过 HTTP 和用户密码克隆远程存储库时,是否可以在 Windows 上使用 .netrc 文件?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
当我使用 Git 通过 HTTP 和用户密码克隆远程存储库时,是否可以在 Windows 上使用 .netrc 文件?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
是:您必须:
%HOME%
(Git 2.0 之前的版本,Git 2.0+ 不再需要)_netrc
文件放入%HOME%
如果您使用的是 Windows 7/10,请在
CMD
会话中键入:,
%HOME%
将设置为'C:\Users\"用户名"
'。转到该文件夹 (
cd %HOME%
) 并创建一个名为“_netrc
”的文件注意:同样,对于 Windows,您需要一个“
_netrc
” >' 文件,不是 '.netrc
' 文件。它的内容非常标准(将
替换为您的值):Luke 提到在评论中:
这确实是我在“尝试“< code>install”github,
.ssh
目录不存在”:包含
git-cmd.bat
在msysgit中确实设置了%HOME%
环境变量:爱国者相信评论中的“它似乎不适用于http协议”
但是,我回答说
netrc
由curl
使用,并且适用于 HTTP 协议,如 此示例(在页面中查找“netrc
”): .此处也与 HTTP 协议一起使用:“_netrc
/.netrc
替代cURL
”。Windows 上支持
netrc
的一个常见陷阱是,如果原始 https url 指定了用户名,那么 git 将绕过它。例如,如果您的 .git/config 文件包含:
Git 不会通过 _netrc 解析您的凭据,要解决此问题,请删除您的用户名,如下所示:
替代解决方案:使用 < strong>git 版本 1.7.9+(2012 年 1 月):此答案来自 Mark Longair 详细介绍了 凭据缓存机制,还允许您不以纯文本形式存储密码,如下所示。
使用 Git 1.8.3 (2013 年 4 月):
您现在可以使用加密的 .netrc(带有
gpg
)。在 Windows 上:
%HOME%/_netrc
(_
,而不是“.
”)该脚本将允许您使用 gpg 加密的 netrc 文件,从而避免将凭据存储在纯文本文件中的问题。
要启用此凭证助手:
请参阅“使用
https:// github
时有没有办法跳过密码输入”使用 Git 2.18+(6 月2018),您现在可以自定义用于解密加密
.netrc
文件的 GPG 程序。请参阅提交786ef50,提交 f07eeed(2018 年 5 月 12 日),作者:路易斯·马尔萨诺 (``)。
(由 Junio C Hamano --
gitster
-- 合并于 提交017b7c5,2018 年 5 月 30 日)Yes: You must:
%HOME%
(pre-Git 2.0, no longer needed with Git 2.0+)_netrc
file in%HOME%
If you are using Windows 7/10, in a
CMD
session, type:and the
%HOME%
will be set to 'C:\Users\"username"
'.Go that that folder (
cd %HOME%
) and make a file called '_netrc
'Note: Again, for Windows, you need a '
_netrc
' file, not a '.netrc
' file.Its content is quite standard (Replace the
<examples>
with your values):Luke mentions in the comments:
This is indeed what I mentioned in "Trying to “
install
” github,.ssh
dir not there":git-cmd.bat
included in msysgit does set the%HOME%
environment variable:爱国者 believes in the comments that "it seems that it won't work for http protocol"
However, I answered that
netrc
is used bycurl
, and works for HTTP protocol, as shown in this example (look for 'netrc
' in the page): . Also used with HTTP protocol here: "_netrc
/.netrc
alternative tocURL
".A common trap with with
netrc
support on Windows is that git will bypass using it if an origin https url specifies a user name.For example, if your
.git/config
file contains:Git will not resolve your credentials via
_netrc
, to fix this remove your username, like so:Alternative solution: With git version 1.7.9+ (January 2012): This answer from Mark Longair details the credential cache mechanism which also allows you to not store your password in plain text as shown below.
With Git 1.8.3 (April 2013):
You now can use an encrypted .netrc (with
gpg
).On Windows:
%HOME%/_netrc
(_
, not '.
')That script would allow you to use gpg-encrypted netrc files, avoiding the issue of having your credentials stored in a plain text file.
To enable this credential helper:
See a full example at "Is there a way to skip password typing when using
https:// github
"With Git 2.18+ (June 2018), you now can customize the GPG program used to decrypt the encrypted
.netrc
file.See commit 786ef50, commit f07eeed (12 May 2018) by Luis Marsano (``).
(Merged by Junio C Hamano --
gitster
-- in commit 017b7c5, 30 May 2018)您还可以安装Git Credential Manager< /a> 将 Git 密码保存在 Windows 凭据管理器中,而不是
_netrc
。这是一种更安全的密码存储方式。You can also install Git Credential Manager to save Git passwords in Windows credentials manager instead of
_netrc
. This is a more secure way to store passwords.这将使 Git 使用
.netrc
在 HTTPS 上进行身份验证:_netrc
并位于c:\Users\
。HOME=%USERPROFILE%
的环境变量(使用控制面板中的“系统”选项设置系统范围的环境变量。根据 Windows 版本,您可能需要选择“高级选项”。)。_netrc
文件中的密码不能包含空格(引用密码不起作用)。This will let Git authenticate on HTTPS using
.netrc
:_netrc
and located inc:\Users\<username>
.HOME=%USERPROFILE%
(set system-wide environment variables using the System option in the control panel. Depending on the version of Windows, you may need to select "Advanced Options".)._netrc
file cannot contain spaces (quoting the password will not work).我正在发布一种使用
_netrc
从网站 www.course.com 下载材料的方法。如果有人要使用 coursera-dl 在 www.coursera.com 上下载公开课材料,并且在 Windows 操作系统上有人想要使用类似 Unix 操作系统中的“.netrc”之类的文件来添加选项
-n
而不是-U <用户名> -P <密码>
为了方便起见。他/她可以这样做:检查 Windows 操作系统上的主路径:
setx HOME %USERPROFILE%
(请参阅VonC 的回答)。它将把HOME
环境变量保存为C:\Users\"username"
。找到目录
C:\Users\"username"
并创建一个文件名_netrc
。注意:没有任何后缀。内容如下:
machine coursera-dl login;密码
使用
coursera-dl -n --path PATH <课程名称>
等命令下载课程资料。 此页面的更多 coursera-dl 选项详细信息。I am posting a way to use
_netrc
to download materials from the site www.course.com.If someone is going to use the coursera-dl to download the open-class materials on www.coursera.com, and on the Windows OS someone wants to use a file like ".netrc" which is in like-Unix OS to add the option
-n
instead of-U <username> -P <password>
for convenience. He/she can do it like this:Check the home path on Windows OS:
setx HOME %USERPROFILE%
(refer to VonC's answer). It will save theHOME
environment variable asC:\Users\"username"
.Locate into the directory
C:\Users\"username"
and create a file name_netrc
.NOTE: there is NOT any suffix.the content is like:
machine coursera-dl login <user> password <pass>
Use a command like
coursera-dl -n --path PATH <course name>
to download the class materials. More coursera-dl options details for this page.在我的操作系统 WINDOWS 中,我使用不带下划线的 .netrc 文件(就像在 LINUX 中一样)。并且工作没有问题。
为了创建存档,我使用了记事本。
在存档内,我只放置了一行:
machine登录 密码 <您的密码>
如下例所示:
machine www.gmail.com 登录 maria 密码 123456
要保存文件,我将其放入文件名:.netrc(否则,只有扩展名,根本没有名称),并且在我标记的文件类型中:
我将存档保存在我的个人目录中的所有文件(例如 C:/users/maria)
该目录必须是与您拥有以下文件夹的目录相同:.vscode、.conda、.python ....
之后,程序开始在站点中进行身份验证,没有问题。
In my OS WINDOWS, I use the .netrc file without the underline (LIKE IN LINUX). And works without problem.
To create the archive I used notepad.
Inside the archive I put only the line:
machine <the_link_that_you_want> login <your_login> password <your_password>
like the example below:
machine www.gmail.com login maria password 123456
To save the file, I put in the name of the file : .netrc (otherwise, only the extension, without name at all) and in the type of file I mark: all files
I saved the archive in me personal directory (like C:/users/maria)
The directory must be the same directory that you have folders like: .vscode, .conda, .python ....
after that, the program start to authenticate in the site without problems.