Her*_*ral 9 git authentication curl http .netrc
我一直在看Git和cURL,我发现了一些关于.netrc的引用,这可能有助于HTTP身份验证.问题是:.netrc是愚蠢的,因为它以纯文本格式存储密码,这对我正在开发的解决方案来说是一个很大的安全问题.
是否有替代.netrc方法?是否有可能为cURL开发"身份验证后端"?
添加了一个与文件交互的新的只读凭证帮助程序(in
contrib/).netrc/.authinfo.
该脚本允许您使用gpg加密的netrc文件,避免将凭据存储在纯文本文件中.
要启用此凭据帮助程序:
git config credential.helper '$shortname -f AUTHFILE1 -f AUTHFILE2'
Run Code Online (Sandbox Code Playgroud)
(请注意,Git会将"
git-credential-"添加到帮助程序名称并在路径中查找它.)
看到一个完整的例子" 有没有办法跳过输入密码时,使用https:// github "
原始答案(2011年3月)
唯一的替代方案(除了不使用它并通过ssh)将是:
crypt')请注意,在Unix上,该文件通常处于模式600,只有您可以看到.
在Windows(_netrc)上,该文件应该在您的文件中HOMEDIR,不应该(通过Windows ACL)访问任何其他用户.
但我仍然不喜欢明文密码......
例如,这个线程经历了相同的过程(在Unix上用于gpg,但它仍然很好地说明了解决方案):
下面我已经包含了一个实现'
gpg' 用法的示例脚本,可以用来加密文件的内容.它是shell脚本,但我相信你可以将这个概念改编为你的perl脚本.我认为根据您的需要,基本想法是:
- 使用您的密码(和其他信息)创建纯文本文件
- 使用
gpg并存储加密文件对其进行加密; 处理纯文本文件- 在perl脚本中,将加密文件解密为纯文本文件
- 在脚本运行期间读取纯文本文件的内容
- 尽快删除纯文本文件.
这里只是gpg工作的一个例子:
#!/bin/sh
echo -n "Enter your password: "
read pass
FILE=~/mypassword
echo $pass > $FILE
gpg -c $FILE
rm -f $FILE
gpg $FILE.gpg
MYPASSWORD=`cat $FILE`
rm -f $FILE
echo $MYPASSWORD
Run Code Online (Sandbox Code Playgroud)