我开始使用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/'

当前回答

(这个答案不是特定于GitHub,而是我使用BitBucket,但它也可以在GitHub中工作,因为概念是相同的)

就我而言,我使用的是Bitbucket应用程序密码,它总是要求我进行身份验证。

停止自动读取并不能解决问题,因为我一天要拉和推好几次,每次输入应用程序密码都很糟糕。

此外,我需要将应用程序密码存储在不安全的地方,这也是我不想使用凭证的原因。助手存储,它以明文存储密码,而不是使用凭据。助手wincred,它是加密的。

当对话框提示我使用浏览器而不是应用程序密码时,我要求使用浏览器登录,这是可行的,原因超出了我的理解。现在它不再要求凭据了(我不得不暂时改变我的默认浏览器,因为我工作时使用的bitbucket帐户不在我的默认浏览器中,对话框尝试使用默认浏览器进行身份验证)。

其他回答

下面的步骤教你如何:

生成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时。这个链接将提供一些帮助-

错误:代理程序承认签名失败

寻找快乐!

在与这样的事情斗争了一段时间后,我想我想出了一个很好的解决方案,尤其是在GitHub和Bitbucket上有多个账户的时候。然而,对于Visual Studio Code,它最终从Git Bash终端启动,这样它从Bash会话继承了环境变量,并且它知道要查看哪个ssh-agent。

我仍然很难找到一个地方来获取我需要的信息。另外,自2017年以来,ssh-agent只有在您尝试访问存储库时才会提示您输入密码短语。

我把我的发现写在这里,如果有人感兴趣的话。

我在Visual Studio Code和Ubuntu 20.04 (Focal Fossa)上运行:

它自动解决了定期询问凭证的问题:

git config --global credential.helper store

对于我来说,我已经用SSH密钥设置了远程存储库,但是Git无法找到它们,因为HOMEDRIVE环境变量由于公司的域策略被自动设置为网络共享。在启动代码之前更改shell中的环境变量。导致Visual Studio Code继承正确的环境变量和voilà在Git输出窗口中不再有连接错误。

现在我只需要弄清楚如何覆盖域策略,因此HOMEDRIVE总是指向我的本地c:\users\marvhen目录,这是.ssh目录的默认位置。

我们需要配置VS Code以在Git命令之上提供身份验证。

下面我将展示如何设置扩展设置。