我开始使用Visual Studio Code,我试图将我的测试项目保存到GitHub,但Visual Studio Code始终要求我提供GitHub凭据。
我已安装在我的电脑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/'
答案 0 :(得分:112)
在98票之后,我想我需要在解释中给出一个真实的答案。
为什么VS代码会问密码?因为VSCode运行自动提取功能,而git服务器没有任何信息来授权您的身份。它发生在:
https
个远程网址。是!这种遥控器每次都绝对会问你。这里也不例外!您可以使用临时技巧将授权缓存为下面的解决方案,但不建议这样做。ssl
个远程网址,但是你没有将你的ssh公钥复制到git服务器上。使用ssh-keygen
生成密钥并将其复制到git服务器。完成!此解决方案还可以帮助您再次在终端上重新键入密码。请参阅@Fnatical here提供的有关答案的良好指示。本答案末尾的更新部分对您没有任何帮助。除了它会让你在工作流程中停滞不前。它只会阻止在VSCode中发生的事情,让这件事发生在终端。
很抱歉,如果这个错误的答案长期影响了你。
-
我在VSCode document找到了解决方案:
提示:您应该set up a credential helper以避免被问到 每次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)
我安装了VS Code并在上面配置相同,但正如@ddieppa所说,它对我来说也不起作用。所以我试着在用户设置中找到一个选项,我看到“git.autofetch”= true,现在设置它是假的!不再需要VS Code重复输入密码!
在菜单中,单击文件/首选项/用户设置 并输入以下内容:
将您的设置放在此文件中以覆盖默认设置
{
"git.autofetch": false
}
答案 1 :(得分:40)
您应该可以像这样设置您的凭据:
git remote set-url origin https://<USERNAME>:<PASSWORD>@bitbucket.org/path/to/repo.git
您可以像这样获取远程网址:
git config --get remote.origin.url
答案 2 :(得分:21)
这对我有用:
1.设置要存储的凭据存储设备
$ git config --global credential.helper store
2.然后确认是否要:
$ git config --global credential.helper
store
使用Here中引用的git bash的简单示例(仅适用于当前存储库,所有存储库均使用--global
)
$ 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。
更详细的示例和高级用法here。
注意:用户名和密码未加密并以纯文本格式存储,因此只能在个人计算机上使用。
答案 3 :(得分:19)
尝试安装&#34; Git Credential Manager For Windows&#34; (以及设置credential manager的说明)。
如果在使用Git的应用程序中需要(例如VS代码),它将&#34; magically&#34;打开Visual Studio Team Services凭据输入所需的对话框。
答案 4 :(得分:14)
我要做的就是运行以下命令:
git config --global credential.helper wincred
然后提示我输入两次密码。
下次运行时,不会提示我输入密码。
答案 5 :(得分:11)
使用ssh而不是http / https。
您需要在本地计算机上设置ssh密钥,将其上传到您的git服务器并将网址格式http://
替换为git://
,您将不再需要使用密码。
如果你不能使用ssh将其添加到你的配置中:
[credential "https://example.com"]
username = me
文件是here。
只需按照这些步骤操作即可立即设置ssh密钥:
生成新的ssh密钥(如果已有密钥,则跳过此步骤)
ssh-keygen -t rsa -C "your@email"
将密钥设置在home/.ssh
目录(或Windows下的Users/<your user>.ssh
)后,打开它并复制内容
SSH keys
Add ssh key
你们都准备出发了: - )
答案 6 :(得分:9)
自动Git身份验证。从v1.45 Release Notes:
用于GitHub存储库的GitHub身份验证
VS Code现在具有针对GitHub的自动GitHub身份验证 仓库。现在,您可以在公共场所和 私有存储库,而无需在其中配置任何凭据管理器 你的系统。甚至在集成终端中调用的Git命令, 示例git push,现在会自动针对您进行身份验证 GitHub帐户。
您可以使用禁用GitHub身份验证
git.githubAuthentication
设置。您也可以禁用终端 与git.terminalAuthentication
的身份验证集成 设置。
答案 7 :(得分:6)
以下步骤将指导您完成以下操作:
**如果您的工作特别敏感,生成没有密码短语的SSH密钥是不明智的。
操作系统 - Fedora 28 | 编辑 - VS Code v1.23.0 | 存储库 - Git
生成SSH密钥:
ssh-keygen -t rsa -C "email@goeshere.com"
完成上述步骤后,您的公钥位置将显示在终端窗口中。如果当前登录的用户是&#39; bob&#39;公钥的位置为 /home/bob/.ssh/id_rsa.pub
将公钥复制并导入GitHub:
cat /home/bob/.ssh/id_rsa.pub
将终端窗口中显示的整个公钥复制到剪贴板
确认以上步骤:
ssh -T git@github.com
yes
嗨!您已成功通过身份验证,但GitHub不提供shell访问权限。
首先提交/推送而无需输入用户名/密码:
- touch test.txt
git add test.txt
git commit
- 打开编辑器,输入消息并保存文件。如果vi是您的编辑器,请在文件打开后按i
,输入消息,按esc,然后输入:x
以保存更改。
git push
您可能遇到的唯一打嗝是当您尝试SSH到GitHub时。此链接将提供一些帮助 -
快乐狩猎!
答案 8 :(得分:5)
通常,您可以使用内置的凭据存储功能:
git config --global credential.helper store
或者,如果您使用的是Windows,则可以使用其凭据系统:
git config --global credential.helper wincred
或者,如果您使用的是MacOS,则可以使用其凭据系统:
git config --global credential.helper osxkeychain
第一种解决方案在大多数情况下都是最佳的。
答案 9 :(得分:1)
关注article:
你可以设置GIT_SSH env。变种。到Putty的plink.exe程序。 (然后使用pageant.exe作为身份验证代理)
答案 10 :(得分:1)
使用没有密码短语的SSH密钥。
对某些人来说,这可能是显而易见的(对我而言)。如果你绝对需要密码短语,它也无法解决问题,但这对我在Mac上的情况来说是一个不错的妥协。
答案 11 :(得分:1)
在与这样的事情进行了一段时间的战斗之后,我想我想出了一个很好的解决方案,特别是在GitHub和BitBucket都拥有多个账户时。但是对于VSCode,它最终从Git Bash终端开始,以便从bash会话继承环境变量,它知道要查看哪个ssh-agent。
我意识到这是一个老帖子,但我仍然很难找到一个地方来获取我需要的信息。自2017年起,ssh-agent只有在您尝试访问回购时才能提示您输入密码。
如果有人有兴趣,我会把我的发现放在here上:
答案 12 :(得分:1)
Ubuntu 用户只需在 vs code 的终端中输入此命令:
git config --global credential.helper store
现在,输入一次您的用户名和密码,之后它就不会再询问您了
注意:
用户名和密码未加密并以纯文本格式存储,因此请谨慎使用。
但是,如果您的密码包含一些特殊字符,如@、#、&、* 等,那么这些字符将被加密。
另外,你可以在家里找到你的“.git-credentials”文件,它是隐藏的,所以一定要启用隐藏文件。
位置:~/.git-credentials
答案 13 :(得分:1)
我通常运行此简单命令将git远程URL从 https 更改为 ssh
git remote set-url origin git@github.com:username/repo-name-here.git
答案 14 :(得分:0)
相反但相关的问题:
就我而言,即使缓存助手超时已过期,我也一直在努力使用 vscode 集成终端,但不会忘记输入的密码。
不过,外部终端会话工作正常。
发现 vscode 中恰好有一个选项可以让你在实际的 git 插件之上设置一个可选的缓存,这不允许发生预期的行为。
检查后,我的密码在缓存超时时被遗忘,因此我可以毫不费力地开始从个人帐户跳转到工作帐户:)
在 Linux 上,vscode 1.58.2
答案 15 :(得分:0)
如果您使用的是 Windows PC 那么请回答您正在寻找的问题!
安装 Git for Windows
就是这样!
答案 16 :(得分:0)
答案 17 :(得分:0)
您可以参考此链接来设置Git Credential
您可以运行以下命令来保存您的git凭据。您无需在每次git命令运行时都输入用户名和密码。 (适用于 Windows )
git config --global credential.helper wincred
对于 Mac / Linux ,单击此link,了解如何保存Git凭据
答案 18 :(得分:0)
对于Windows 10 按Windows键 键入cred,您应该在控制面板中看到“凭据管理器” 单击打开,然后删除相关的缓存凭据,然后重试,它会要求用户ID密码输入正确的密码,您会很好。
我更改网络密码时遇到了我
答案 19 :(得分:0)
我在Visual Studio Code中有类似的问题。
我通过将远程URL更改为 https 解决了。 (在.git / config文件中)
[remote "origin"]
url = https://user@server.com/plesk-git/project.git
还有
git config --global credential.helper wincred
再次拉动,出现Windows凭据弹出窗口,问题已解决。
答案 20 :(得分:0)
除了在上面添加ssh配置条目
如果是Windows
Set-Service ssh-agent -StartupType Automatic
在Powershell中 现在vs代码不应该提示...
答案 21 :(得分:0)
对于Windows 10:转到控制面板/凭据管理器/ Windows凭据->单击git链接,->编辑->更新为新密码。那应该工作
答案 22 :(得分:0)
按照以下步骤解决问题。
卸载的软件Vscode和git并重新安装。 将git仓库克隆URL从ssh更改为https。
答案 23 :(得分:0)
我以简单的方式解决了类似的问题:
git pull origin master
。将“ origin”替换为您的远程名称仅此而已。我解决了问题
答案 24 :(得分:0)
我设法执行以下步骤来阻止这种情况。
cd "C:\Program Files\Git\mingw64\libexec\git-core"
,然后卸载git-credential-manager.exe uninstall
git config --global credential.helper wincred
注意:我正在使用个人访问令牌作为密码。
答案 25 :(得分:0)
对我来说,我已经使用SSH密钥设置了远程存储库,但是git找不到它们,因为由于我公司的域策略,HOMEDRIVE环境变量已自动设置为网络共享。在启动code .
之前在我的shell中更改该环境变量会导致VSCode继承正确的环境变量,并且git输出窗口中的中提琴不再出现连接错误。
现在,我只需要弄清楚如何覆盖域策略,以便HOMEDRIVE始终指向我的本地c:\users\marvhen
目录,这是.ssh
目录的默认位置。