当前位置:  开发笔记 > 编程语言 > 正文

Visual Studio Code始终要求git凭据

如何解决《VisualStudioCode始终要求git凭据》经验,为你挑选了7个好方法。

我开始使用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代码的Git输出窗口中出现此错误:

remote: Anonymous access to ddieppa/LineOfBizApp.git denied.
fatal: Authentication failed for 'https://github.com/ddieppa/LineOfBizApp.git/'

Davuz.. 131

我在VSCode文档上找到了解决方案:

提示:您应该设置一个凭据帮助程序,以避免每次VS代码与您的Git远程控制器对话时都要求提供凭据.如果不这样做,您可能需要考虑在...菜单中禁用自动提取以减少您获得的提示数量.

因此,打开凭证助手,以便Git将密码保存在内存中一段时间​​.默认情况下,Git会将您的密码缓存15分钟.

在终端中,输入以下内容:

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)

UPDATE

我在上面安装了VS Code并配置相同,但正如@ddieppa所说,它对我来说也不起作用.所以我试着在用户设置中找到一个选项,我看到"git.autofetch"= true,现在设置它是假的!VS Code不再需要重复输入密码!

在菜单中,单击文件/首选项/用户设置并键入以下内容:

将您的设置放在此文件中以覆盖默认设置

{
  "git.autofetch": false
}

请注意那个设置!它并不是为了帮助您记住您的凭据.它正在谈论自动帮助你git-fetch.有关详细信息,请查看https://www.atlassian.com/git/tutorials/syncing#git-fetch.就存储您的凭据而言,使用命令`git config --global credential.helper cache`.有关详细信息,请查看https://git-scm.com/book/gr/v2/Git-Tools-Credential-Storage. (5认同)

建议你关闭自动提取是一个"别管我"选项.但它类似于说"如果你的软件不起作用,就停止使用它." 重要的是人们要意识到差异.我建议这个答案的"更新"部分说"如果不工作",并解释说你可以让它停止打扰你而不实际解决问题.UPDATE上面的答案部分实际上是正确的(至少,遵循文档链接为我工作) (4认同)

如果你没有发起行动,事情不应该弹出,特别是要求凭证的事情 - 你怎么知道这是安全的而不是恶搞? (2认同)


yohosuff.. 59

您应该能够像这样设置您的凭据:

git remote set-url origin https://:@bitbucket.org/path/to/repo.git

您可以像这样获取远程URL:

git config --get remote.origin.url



1> Davuz..:

我在VSCode文档上找到了解决方案:

提示:您应该设置一个凭据帮助程序,以避免每次VS代码与您的Git远程控制器对话时都要求提供凭据.如果不这样做,您可能需要考虑在...菜单中禁用自动提取以减少您获得的提示数量.

因此,打开凭证助手,以便Git将密码保存在内存中一段时间​​.默认情况下,Git会将您的密码缓存15分钟.

在终端中,输入以下内容:

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)

UPDATE

我在上面安装了VS Code并配置相同,但正如@ddieppa所说,它对我来说也不起作用.所以我试着在用户设置中找到一个选项,我看到"git.autofetch"= true,现在设置它是假的!VS Code不再需要重复输入密码!

在菜单中,单击文件/首选项/用户设置并键入以下内容:

将您的设置放在此文件中以覆盖默认设置

{
  "git.autofetch": false
}


请注意那个设置!它并不是为了帮助您记住您的凭据.它正在谈论自动帮助你git-fetch.有关详细信息,请查看https://www.atlassian.com/git/tutorials/syncing#git-fetch.就存储您的凭据而言,使用命令`git config --global credential.helper cache`.有关详细信息,请查看https://git-scm.com/book/gr/v2/Git-Tools-Credential-Storage.
建议你关闭自动提取是一个"别管我"选项.但它类似于说"如果你的软件不起作用,就停止使用它." 重要的是人们要意识到差异.我建议这个答案的"更新"部分说"如果不工作",并解释说你可以让它停止打扰你而不实际解决问题.UPDATE上面的答案部分实际上是正确的(至少,遵循文档链接为我工作)
如果你没有发起行动,事情不应该弹出,特别是要求凭证的事情 - 你怎么知道这是安全的而不是恶搞?

2> yohosuff..:

您应该能够像这样设置您的凭据:

git remote set-url origin https://:@bitbucket.org/path/to/repo.git

您可以像这样获取远程URL:

git config --get remote.origin.url


如果我在密码中输入@,那么网址是什么?

3> Vaibhav Vish..:

这对我
有用:1.将凭证hepler设置为存储
$ git config --global credential.helper store
2.然后验证是否需要:
$ git config --global credential.helper store

使用从Here引用的git bash的简单示例(仅适用于当前repo,--global用于所有repos)

$ git config credential.helper store
$ git push http://example.com/repo.git
Username: < type your username >
Password: < type your password >

[几天后]
$ git push http://example.com/repo.git
[您的凭据自动使用]

也适用于VS Code.

更详细的例子和先进的使用在这里.

注意:用户名和密码未加密并以纯文本格式存储,因此仅在个人计算机上使用.


我不知道为什么这个缓存就不能在ubuntu 18.04和vs代码上为我工作。“商店”做到了。

4> Reddog..:

尝试安装" Git Credential Manager For Windows "(以及设置凭据管理器的说明).

当在使用Git的应用程序中需要时(例如VS代码),它将" 神奇地 "打开Visual Studio Team Services凭据输入所需的对话框.


我希望有一个"Linux的Git Credential Manager".哦,等一下我已经在运行`ssh-agent`了.但VS Code在Linux上似乎忽略了这一点.

5> GoTo..:

我所要做的就是运行这个命令:

git config --global credential.helper wincred

然后我被提示输入密码两次.

下次它工作而没有提示我输入密码.


谢谢!问题解决了,[这个也是](/sf/ask/17360801/)!
在Ubuntu上,使用`store`而不是`wincred`。

6> CodeWizard..:

使用ssh而不是http/https.

您需要在本地计算机上设置ssh密钥,将它们上传到您的git服务器并将url表单替换http://git://,您将不再需要使用密码.

如果你不能使用ssh将其添加到你的配置:

[credential "https://example.com"]
    username = me

文件在这里.


在github中使用ssh密钥


只需按照这些步骤操作即可立即设置您的ssh密钥:

生成新的ssh密钥(如果已有密钥,则跳过此步骤)
ssh-keygen -t rsa -C "your@email"

将密钥集放在home/.ssh目录(或Users/.sshWindows下)后,打开它并复制内容


如何将sh键添加到github帐户?

登录github帐户

点击右上角的牧场主(设置)
github帐户settigns

点击 SSH keys
ssh关键部分

点击 Add ssh key
添加ssh密钥

粘贴您的密钥并保存

你们都准备去了:-)


你还应该弄清楚根本原因是什么.就我而言,由于我启用了两个因子身份验证,因此SSH是连接到repos的唯一方法.任何https连接都会导致这样的提示.
@codeWizard VS Code是开源和多平台的,你可以在Windows,MacOS或Linux上运行:),处理ssh变种,看看我得到了什么

7> 小智..:

以下步骤指导您完成以下操作:

    生成SSH密钥(无密码**)

    将步骤1中生成的公钥添加到您的Git存储库中

    确认以上步骤已成功完成

    进行首次提交(无需提供用户名/密码)

**如果您的工作特别敏感,则生成没有密码短语的SSH密钥是不明智的。

操作系统 -Fedora 28 | 编辑器 -VS Code v1.23.0 |仓库 -Git

生成SSH密钥:

ssh-keygen -t rsa -C "email@goeshere.com"

输入要保存密钥的文件:按Enter键

输入密码:按Enter

再次输入相同的密码:按Enter键

完成上述步骤后,公共密钥的位置将显示在终端窗口中。如果当前登录的用户为“ bob”,则您的公共密钥的位置为 /home/bob/.ssh/id_rsa.pub

复制公钥并将其导入GitHub:

cat /home/bob/.ssh/id_rsa.pub

将现在显示在终端窗口中的整个公钥复制到剪贴板

去 https://github.com并登录

点击屏幕右上角的用户图标,然后选择 设置

点击SSH和GPG密钥

单击新建SSH密钥

输入标题,将复制到剪贴板的公共密钥粘贴到第一个项目符号点,然后单击添加SSH密钥

确认以上步骤:

ssh -T git@github.com

yes

嗨!您已成功通过身份验证,但是GitHub不提供Shell访问。

首次提交/推送而无需输入用户名/密码: -touch test.txt

git add test.txt

git commit-打开编辑器,输入消息并保存文件。如果vi是您的编辑器,则i在打开文件后按,输入消息,按esc,然后按Enter :x保存更改。

git push

您可能遇到的唯一麻烦是,当您尝试SSH到GitHub时。此链接将提供一些帮助-

https://help.github.com/articles/error-agent-admitted-failure-to-sign/

狩猎愉快!

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有