pro*_*ngs 18 git github github-for-windows
我已经安装了GitHub for Windows和GitExtensions,并且在我的路径中有多个版本的git.exe.

C:\Users\Rajat\AppData\Local\GitHub\PortableGit_93e8418133eb85e81a81e5e19c272776524496c6\cmd\git.exe
C:\Users\Rajat\AppData\Local\GitHub\PortableGit_93e8418133eb85e81a81e5e19c272776524496c6\bin\git.exe
E:\cygwin\bin\git.exe
C:\Program Files (x86)\Git\cmd\git.exe
C:\Program Files (x86)\Git\bin\git.exe
Run Code Online (Sandbox Code Playgroud)
现在,当我git push origin master使用最后三个中git.exe的任何一个时,它会询问我的用户名.但Portable Git不会要求用户名.请参阅以下屏幕截图:

心形的角色只是^C如此无视.
在这种情况下如何处理身份验证?最后,我希望最后三个Gits不要求授权.怎么可能?
我在GitHub的Git中找到了两个额外的文件,但我怀疑它们是否重要:

Ana*_*tts 52
如果你正在使用GitHub for Windows,你需要做的就是:
对于基于HTTPS和SSH的远程控制器,GitHub已经在命令行上为您解决了这个问题
Von*_*onC 42
对于Windows本身的GitHub,Paul Betts(GitHub工作人员)温和地提醒大家G4W已经包含了一个凭证助手(基于CryptProtect,我想这个CryptProtectData功能)
请参阅下面的答案.
对于那些不使用G4W的人,请继续阅读.
要添加到我之前的答案(通过控制台/命令行推送到GitHub):
像~/.netrc(在Unix上)或%HOME%/_netrc(在Windows上)这样的文件可以帮助您避免输入您对GitHub进行的每次git推送的凭证.
您可以在netrc文件中存储所需的凭据.
(对于GitHub或其他repo托管服务提供商)
但是:
以下部分解决了这些问题:
(2013年9月3日)
如果可以避免,请通过应用程序配置2FA,始终通过应用程序,永远不要通过文本短信.
原因是,通过该激活过程,您可以访问双因素密钥,该密钥用于每30秒生成第二个因子身份验证:

这样,您可以访问任何GAuth(Google身份验证器)客户端,输入相同的2FA密钥,并查看通过SMS消息获得的完全相同的代码.
除此之外,如果你没有电话服务,它仍然有效;)
当然,第一个使用的客户端是 Android手机或iphone上的GAuth.

这意味着您无需等待短信,并将2FA保留在手机上.
但是,使用您的密钥可以使您不仅限于手机上的客户端.
你可以去任何其他客户,例如:
对于所有这些客户(使用GAuth,或使用桌面客户端或网页),您将需要双因素密钥.
如果您通过短信激活了2FA:
注意:如果您在Android上的Gauth客户端中添加了一个密钥,而没有记住第一个所述的密钥,则所有密钥都不会丢失.
(但你需要一个有根的手机)
$ adb shell
# sqlite3 /data/data/com.google.android.apps.authenticator/databases/databases
sqlite> select * from accounts;
1|your@email.address|your2factorkey|0|0
sqlite> .quit
#exit
Run Code Online (Sandbox Code Playgroud)
不要忘记获取然后保存相关的恢复代码(在Account SettingsGitHub帐户的部分中):

(参阅关于最后一节,其中保存这些代码)
_netrc文件(请参阅git1.8.3 +:gpg加密的凭证助手netrc)
您需要在该文件中至少加密这两个凭据:
machine github.com
login username
password xxxx
protocol https
machine gist.github.com
login username
password xxxx
protocol https
Run Code Online (Sandbox Code Playgroud)
然后你只保留一个~/.netrc.gpg或%HOME%/_netrc.gpg
但是,如果您启用上述新的双因素身份验证,' xxxx'将不是您的GitHub帐户:请参阅下一节"个人访问令牌".
如果您已激活2FA,则无法使用GitHub密码.
Anonymous access to user/repo.git denied
这是你会看到的(gpg部分是因为我使用了netrc凭证助手):
C:\Users\VonC\prog\git\git>git push origin
Using GPG to open %HOME%/_netrc.gpg: [gpg2 --decrypt %HOME%/_netrc.gpg]
You need a passphrase to unlock the secret key for
user: "auser <email@email.com>"
2048-bit RSA key, ID A2EF56, created 2012-09-12 (main key ID DC43D6)
remote: Anonymous access to VonC/git.git denied. <=====
fatal: Authentication failed for 'https://VonC@github.com/VonC/git/' <=====
Run Code Online (Sandbox Code Playgroud)
因此,请转到DeveloperGitHub帐户(小节Personal access tokens)部分,并生成个人访问令牌:

该令牌不需要双因素身份验证:您可以在_netrc文件中将其用作密码,并且您只需推送到GitHub即可.
但与您的主要GitHub帐户密码的区别在于:
您可以撤销个人访问令牌(并生成新的令牌),同时仍保持主密码不变.
如果您已在~/.netrc.gpg文件中加密了主GitHub密码,则可以将其替换为新的个人令牌:
gpg -d %HOME%\_netrc.gpg | sed "s/yourPassord/YourPersonalAccessToken/g" | gpg -e -r auser --yes -o %HOME%\_netrc.gpg
Run Code Online (Sandbox Code Playgroud)
多行可读性:
gpg -d %HOME%\_netrc.gpg |
sed "s/yourPassord/YourPersonalAccessToken/g" |
gpg -e -r auser --yes -o %HOME%\_netrc.gpg
Run Code Online (Sandbox Code Playgroud)
甚至在Windows上也可以使用类似unix的GoW(Windows上的Gnu)命令,其中包括sed.
我推荐像lastpass.com这样的在线凭证存储
你需要保存:

pro*_*ngs 13
https://help.github.com/articles/set-up-git
密码缓存部分说:
如果您不想使用GitHub for Windows,可以在此处下载适用于您的操作系统的帮助程序:
这样做,任何其他git.exe将无需密码即可使用.:)
| 归档时间: |
|
| 查看次数: |
26120 次 |
| 最近记录: |