Visual Studio Code始终要求git凭据

ddi*_*ppa 173 git github visual-studio visual-studio-code

我开始使用Visual Studio Code,我试图将我的测试项目保存到GitHub,但Visual Studio Code总是要求我的GitHub凭据.

我已经安装在我的PC GitHub DesktopGit中,我已经运行:

 git config --global credential.helper wincred
Run Code Online (Sandbox Code Playgroud)

但仍然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
Run Code Online (Sandbox Code Playgroud)

以下是要求凭据的弹出窗口:

在此输入图像描述

我在弹出窗口中输入了我的GitHub凭据,但仍然在Visual Studio代码Git输出窗口中出现此错误:

remote: Anonymous access to ddieppa/LineOfBizApp.git denied.
fatal: Authentication failed for 'https://github.com/ddieppa/LineOfBizApp.git/'
Run Code Online (Sandbox Code Playgroud)

Dav*_*vuz 131

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

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

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

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

git config --global credential.helper cache
# Set git to use the credential memory cache
Run Code Online (Sandbox Code Playgroud)

要更改默认密码缓存超时,请输入以下内容:

git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)
Run Code Online (Sandbox Code Playgroud)

UPDATE

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

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

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

{
  "git.autofetch": false
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意那个设置!它并不是为了帮助您记住您的凭据.它正在谈论自动帮助你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认同)
  • 我试过了,但对我不起作用,我什至使用了这个: $ git config --global credential.helper wincred (2认同)
  • 如果你没有发起行动,事情不应该弹出,特别是要求凭证的事情 - 你怎么知道这是安全的而不是恶搞? (2认同)
  • https 部分为我做到了。不小心将 origin 指向了 https 而不是 ssh 链接,然后想知道 vs code 中发生了什么 xD (2认同)

yoh*_*uff 59

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

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

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

git config --get remote.origin.url

  • 如果我在密码中输入@,那么网址是什么? (4认同)
  • @Suvonkar,您可以在密码中使用 %40 而不是 @。 (3认同)
  • 另请注意,如果您不想将密码保存到本地磁盘并希望继续收到提示,则 &lt;PASSWORD&gt; 是可选的。 (2认同)

Vai*_*hal 35

这对我
有用: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代码上为我工作。“商店”做到了。 (2认同)
  • 很不安全。改用缓存。如果您的“个人”计算机被黑,您的 git 凭据也可能会被黑。 (2认同)

Ada*_*son 24

通常,您可以使用内置的凭证存储设施:

git config --global credential.helper store

或者,如果您使用的是 Windows,则可以使用他们的凭证系统:

git config --global credential.helper wincred

或者,如果您使用的是 MacOS,则可以使用他们的凭证系统:

git config --global credential.helper osxkeychain

在大多数情况下,第一种解决方案是最佳的。


Red*_*dog 19

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

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

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

GoT*_*oTo 17

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

git config --global credential.helper wincred

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

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

  • 谢谢!问题解决了,[这个也是](/sf/ask/419271471/)! (2认同)
  • 在Ubuntu上,使用`store`而不是`wincred`。 (2认同)
  • 这对我有用!您还可以执行“git config --global credential.helper 'cache --timeout==1209600'” 使其持续 2 周,而不是默认的 15 分钟。来源:https://help.github.com/en/github/using-git/caching-your-github-password-in-git (2认同)

Cod*_*ard 15

使用ssh而不是http/https.

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

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

[credential "https://example.com"]
    username = me
Run Code Online (Sandbox Code Playgroud)

文件在这里.


在github中使用ssh密钥


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

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

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


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

  • 登录github帐户
  • 点击右上角的牧场主(设置)
    github帐户settigns
  • 点击 SSH keys
    ssh关键部分
  • 点击 Add ssh key
    添加ssh密钥
  • 粘贴您的密钥并保存

你们都准备去了:-)

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

小智 12

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

  1. 生成SSH密钥(无密码**)
  2. 将步骤1中生成的公钥添加到您的Git存储库中
  3. 确认以上步骤已成功完成
  4. 进行首次提交(无需提供用户名/密码)

**如果您的工作特别敏感,则生成没有密码短语的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时。此链接将提供一些帮助-

狩猎愉快!


Mar*_*ark 10

自动 Git 身份验证。从 v1.45发行说明

GitHub 存储库的 GitHub 身份验证

VS Code 现在具有针对 GitHub 存储库的自动 GitHub 身份验证。您现在可以在公共和私有存储库之间进行克隆、拉取、推送,而无需在系统中配置任何凭证管理器。即使是在集成终端中调用的 Git 命令,例如 git push,现在也会根据您的 GitHub 帐户自动进行身份验证。

您可以使用git.githubAuthentication设置禁用 GitHub 身份验证 。您还可以通过设置禁用终端身份验证集成git.terminalAuthentication


小智 6

对于 Windows 10:转到控制面板/凭据管理器/Windows 凭据--> 单击 git 链接,--> 编辑--> 更新为新密码。那应该工作


小智 6

我在 Visual Studio Code 和Ubuntu\xc2\xa020.04 (Focal Fossa) 上运行了这个:

\n

它自动解决了经常询问凭据的问题:

\n
git config --global credential.helper store\n
Run Code Online (Sandbox Code Playgroud)\n


小智 5

Ubuntu 用户只需在 Visual Studio Code 的终端中输入以下命令:

git config --global credential.helper store
Run Code Online (Sandbox Code Playgroud)

现在,输入一次您的用户名和密码,之后就不会再询问您了。

笔记:

  1. 用户名和密码未加密并以纯文本格式存储,因此请谨慎使用。

  2. 但是,如果您的密码包含一些特殊字符,如@、#、&、*等,那么这些字符将被加密。

此外,您还可以在家中找到“.git-credentials”文件。它是隐藏的,因此请确保启用隐藏文件。

位置:~/.git-credentials