Git凭证助手不';无法在linux的windows子系统上工作

Git凭证助手不';无法在linux的windows子系统上工作,git,github,windows-subsystem-for-linux,Git,Github,Windows Subsystem For Linux,我在Windows10上的WSL中使用Ubuntu,我在WSL中安装了git,并定期使用它。我有一个非常恼人的问题,我试图缓存我的github凭据,这样我就不必在提交时不断输入用户名/密码,但它不起作用。我遵循github verbaitim提供的确切说明。首先,我进入: git config --global credential.helper cache 然后我进入: git config --global credential.helper 'cache --timeout=262980

我在Windows10上的WSL中使用Ubuntu,我在WSL中安装了git,并定期使用它。我有一个非常恼人的问题,我试图缓存我的github凭据,这样我就不必在提交时不断输入用户名/密码,但它不起作用。我遵循github verbaitim提供的确切说明。首先,我进入:

git config --global credential.helper cache
然后我进入:

git config --global credential.helper 'cache --timeout=2629800'
但是什么也没发生,我仍然需要不断输入我的github用户名和密码

编辑:


为了澄清这一点,我是通过ubuntu wsl上的bash终端完成的,而不是使用windows版本的git。我使用的是ubuntu中包含的git版本。我输入的所有这些命令都是linux命令。

原因可能是WSL中不完全支持Unix域套接字

您可以改用windows凭据管理器:

在链接中,以下是如何启用它:

git config--global credential.helper“/mnt/c/Program\Files/git/mingw64/libexec/git core/git credential manager.exe”


您可以使用SSH而不是HTTP。一旦设置好,您只需在启动WSL时输入SSH密码

在WSL2上尝试了几种方法之后,这对我来说是有效的。我选择在WSL而不是Windows中托管SSH密钥

如果您还没有按照GitHub的指南进行操作,请按照GitHub的指南进行操作。请确保在本页顶部附近选择“Linux”(用于WSL)

安装:

然后将以下行添加到shell的配置文件中(可能是
~/.bashrc
~/.zshrc
):

现在,您只需在启动WSL时输入密码


感谢Birk Holland在Windows和WSL 2之间共享SSH密钥。

遇到此问题时,您是通过WSL命令行使用WSL Git还是在Win32程序中使用Git?另外,我认为您是在WSL命令行(bash或类似)中输入的?我在WSL命令行中使用的是git,而不是windows版本的git,所有这些命令都是在ubuntu WSL bash终端中输入的,这可能是感谢您这个解决方案完美工作的原因!希望将来WSL的更新能让Unix域套接字正常工作,人们不需要在windows上安装git
sudo apt install keychain
eval `keychain --quiet --eval --agents ssh id_rsa`