我开始使用Visual Studio Code,我试图将我的测试项目保存到GitHub,但Visual Studio Code总是要求我的GitHub凭据。
我已经在我的PC上安装了GitHub Desktop和Git。我已经跑了:
git config --global credential.helper wincred
但是Visual Studio Code仍然在要求凭证。
我该如何解决这个问题?
下面是我的.gitconfig文件,位于用户配置文件文件夹中:
[filter "lfs"]
clean = git-lfs clean %f
smudge = git-lfs smudge %f
required = true
[user]
name = ddieppa
[user]
email = fake@live.com
[credential]
helper = wincred
下面是弹出窗口要求凭据:
我在弹出窗口中输入了我的GitHub凭证,但仍然在Visual Studio Code中的Git输出窗口中得到这个错误:
remote: Anonymous access to ddieppa/LineOfBizApp.git denied.
fatal: Authentication failed for 'https://github.com/ddieppa/LineOfBizApp.git/'
下面的步骤教你如何:
生成SSH密钥(不含密码短语**)
将第1步中生成的公钥添加到Git存储库中
确认以上步骤已成功完成
第一次提交(无需提供用户名/密码)
**如果您的工作特别敏感,生成没有密码短语的SSH密钥是不明智的。
OS - Fedora 28 |编辑器- Visual Studio Code v1.23.0 | Repository - Git
生成SSH密钥:
ssh -t rsa -C "email@goeshere.com"
输入保存密钥的文件:按“Enter”
Enter passphrase:按“Enter”
再次输入相同的密码短语:Press Enter
完成上述步骤后,您的公钥的位置将显示在终端窗口中。如果当前登录的用户是'bob',那么公钥的位置将是/home/bob/.ssh/id_rsa.pub
复制并导入公钥到GitHub:
猫/home/bob/.ssh/id_rsa.pub
将现在显示在终端窗口中的整个公钥复制到剪贴板
登录https://github.com并登录
单击界面右上角的用户图标,选择“设置”
单击“SSH”和“GPG”键
单击“新建SSH密钥”
输入标题,将复制到剪贴板的公钥粘贴在第一个项目符号中,单击“添加SSH密钥”
确认以上步骤:
ssh -T git@github.com
是的
嗨!您已成功验证,但GitHub不提供shell访问。
第一次提交/推送无需输入用户名/密码:
触摸用法
Git添加test.txt
Git提交-打开编辑器,输入消息并保存文件。如果你的编辑器是vi,打开文件后按I,输入消息,按Esc,然后输入:x保存修改。
git推
您可能遇到的唯一问题是当您尝试SSH到GitHub时。这个链接将提供一些帮助-
错误:代理程序承认签名失败
寻找快乐!
这对我来说很管用:
设置凭证帮助存储:
Git配置——全局凭据。辅助存储
然后验证你是否想:
Git配置——全局凭据。辅助存储
这里引用了一个使用Git Bash的简单示例(仅适用于当前存储库,对所有存储库使用——global):
git config credential.helper store
git push http://example.com/repo.git
Username: < type your username >
Password: < type your password >
[several days later]
git push http://example.com/repo.git
[your credentials are used automatically]
它也适用于Visual Studio Code。
这里有一个更详细的示例和高级用法。
注意:用户名和密码不加密,以纯文本格式存储,因此仅在您的个人计算机上使用。
使用SSH代替HTTP或HTTPS。
您需要在您的本地机器上设置SSH密钥,将它们上传到您的Git服务器,并将URL从http://替换为Git://,您将不再需要使用密码。
如果你不能使用ssh添加到你的配置:
[credential "https://example.com"]
username = me
文件在这里。
在GitHub中使用SSH密钥
简单地按照这些步骤,你将设置你的SSH密钥在任何时间:
生成一个新的SSH密钥(如果已经有密钥,则跳过此步骤)
ssh -t rsa -C "your@email"
一旦你在家里设置好了钥匙。ssh目录(或Users/<您的用户>。ssh),打开并复制内容
如何向GitHub帐户添加SSH密钥?
登录GitHub账户
点击右上角的牧场主(设置)
GitHub账户设置http://git-scm.com/docs/gitcredentials
单击SSH密钥
单击Add ssh键
粘贴密钥并保存
你都准备好了:-)
为什么Visual Studio Code需要密码?因为Visual Studio Code运行自动获取功能,而Git服务器没有任何信息来授权您的身份。它发生在:
Your Git repository has a https remote URL. Yes! This kind of remote will absolutely ask you every time. No exceptions here! (You can do a temporary trick to cache the authorization as the solution below, but this is not recommended.)
Your Git repository has ssh remote URL, but you've not copied your ssh public key onto the Git server. Use ssh-keygen to generate your key and copy it to Git server. Done! This solution also helps you never retype password on terminal again. See a good instruction by @Fnatical here for the answer.
这个答案后面更新的部分对你一点帮助都没有。(这实际上会让你的工作流程停滞不前。)它只是停止在Visual Studio Code中发生的事情,并将这些发生的事情移动到终端。
如果这个糟糕的答案影响了你很长很长一段时间,我很抱歉。
原来的答案(不好)
我在Visual Studio Code文档中找到了解决方案:
提示:您应该设置一个凭据助手,以避免被询问
每次VS Code与你的Git遥控器对话时,你都需要获取凭据。如果你
不要这样做,你可能想要考虑在…
菜单来减少提示的数量。
因此,打开凭据帮助程序,以便Git将密码保存在内存中一段时间。默认情况下,Git会缓存密码15分钟。
在Terminal中输入如下内容:
git config --global credential.helper cache
# Set Git to use the credential memory cache
输入如下命令修改默认密码缓存超时时间。
git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)
如果原来的答案不成立
我安装了Visual Studio Code和上面相同的配置,但正如@ddieppa所说,它也不适合我。所以我试着在用户设置中找到一个选项,我看到了“git”。Autofetch " =真,现在设置为假!Visual Studio代码不再需要重复输入密码!
在菜单文件→首选项→用户设置:
类型:
将您的设置放在这个文件中以覆盖默认设置:
{
"git.autofetch": false
}